the C# compiler requires a class have a constructor, you don't *have* to use it or even type one if you don't need it. The C# compiler will add a blank constructor with no parameters at compile time if you don't type any constructor. Constructors are good for initialising classes to a certain minimum state of readyness if you like, it is dependant on your project and what you are implementing.

You can have more than one constructor, all must have different signatures (different parameter lists) this allows consumers of your class to instantiate an instance of it in different states again this depends on how complex a class you are creating and the problem you are trying to solve.

the C# compiler requires a class have a constructor, you don't *have* to use it or even type one if you don't need it. The C# compiler will add a blank constructor with no parameters at compile time if you don't type any constructor. Constructors are good for initialising classes to a certain minimum state of readyness if you like, it is dependant on your project and what you are implementing.

You can have more than one constructor, all must have different signatures (different parameter lists) this allows consumers of your class to instantiate an instance of it in different states again this depends on how complex a class you are creating and the problem you are trying to solve.

To add to that...

Think of constructors as quite literally that: A method that constructs the class's insides when it is instantiated.
When a class is first called

ClassA myClass = new ClassA();

the very first thing the compiler does is run the constructor.

What I use them for is to setup my fields and what-not so that everything is ready when I need it. Here is an example...

When you instiantate the class as I showed above (Class A myClass = new Class A) it will print out "Called Constructor!" when you run it!

What hollystyles is talking about when they mention having more than one constructor (which you can have more than one of any method) is called Overloading. It is a little advanced but the simple explanation is that you can have multiple methods within a class so that you can pass different types into it...

Here is an example:

Class A
{
public A(int x)
{
int r = x + 3;
// This will ouput 3 added to whatever you pass into it
MessageBox.Show(r.ToString());
}
public A(string s)
{
// This will output whatever text you pass into it
MessageBox.Show(s.ToString());
}
}

Parameters are values that you can pass into and out of a method. So for example if you wanted to add a number (x) to 2 and show the output you would pass x as the parameter to the method.

public int MyMethod(int x) // Notice we put x in there
{
return = x + 2;
}
... Some code here ...
// Later on when you call your method you pass an integer into it via the variable x
MessageBox.Show(MyMethod(3).ToString());
// This will output the result of MyMethod(), which in this case would be 5

I have a 2d matrix with dimension (3, n) called A, I want to calculate the normalization and cross product of two arrays (b,z) (see the code please) for each column (for the first column, then the second one and so on).
the function that I created to find the ...

Write a C program that should create a 10 element array of random integers (0 to 9). The program should total all of the numbers in the odd positions of the array and compare them with the total of the numbers in the even positions of the array and indicate ...