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]
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]
当类中未声明实例构造函数时,将自动生成一个默认构造函数。该构造函数会调用基类的无参数构造函数。若基类没有可访问的无参数构造函数,则编译时会产生错误。对于抽象类,默认构造函数的访问级别为受保护,否则为公共。
1565

被折叠的 条评论
为什么被折叠?



