To add to what Graeme has said ...
When you create a class the system adds a hidden default parameterless constructor for you so that you can create instances:
public partial class MyClass
{
public MyClass() {}
}
...
MyClass foo = new MyClass();
If you create a constructor of any kind, the hidden default constructor is removed so that a parameterless constructor cannot be called unless you specifically allow it:
public class MyClass
{
private string Name = "";
public MyClass(string name) { Name = name;}
}
...
MyClass foo = new MyClass();
MyClass foo = new MyClass("Joe Bloe");
If you think about it, that's kinda important: if you create a class that must have some information to do anything (a User class might need at least a Name for example, or Singleton class might need a private constructor instead of public) then unless the default constructor is removed it could still be called and that would defeat the whole idea.