If a class contains no instance constructor declarations, a default instance
constructor is automatically provided.
That default constructor simply invokes the parameterless constructor of
the direct base class. If the direct base
class does not have an accessible parameterless instance constructor, a
compile-time error occurs. If the class is
abstract then the declared accessibility for the default constructor is
protected. Otherwise, the declared
accessibility for the default constructor is public. [Note: Thus, the
default constructor is always of the form
protected C(): base() {}
or
public C(): base() {}
where C is the name of the class. end note]
[Example: In the example
class Message
{
object sender;
string text;
}
a default constructor is provided because the class contains no instance
constructor declarations. Thus, the
example is precisely equivalent to
class Message
{
object sender;
string text;
C# LANGUAGE SPECIFICATION
262
public Message(): base() {}
}
end example]