TOP*_*KEK 13 .net c# constructor class
C#中的类怎么可能没有定义构造函数?比如我有一个班级
internal class TextStyle
{
internal string text = "";
internal Font font = new Font("Arial", 8);
internal Color color = Color.Black;
}
Run Code Online (Sandbox Code Playgroud)
在代码中,这个类被实例化为
TextStyle textParameters = new TextStyle();
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 38
如果您没有为非静态类声明任何构造函数,则编译器会为您提供public(或受抽象类保护)无参数构造函数.你的类有效地有一个构造函数:
public TextStyle()
{
}
Run Code Online (Sandbox Code Playgroud)
这在C#4规范的第10.11.4节中描述:
如果类不包含实例构造函数声明,则会自动提供默认实例构造函数.该默认构造函数只是调用直接基类的无参数构造函数.如果直接基类没有可访问的无参数实例构造函数,则会发生编译时错误.如果类是抽象的,那么默认构造函数的声明可访问性是
protected.否则,默认构造函数的已声明可访问性为public.
C#中唯一没有任何实例构造函数的类是静态类,它们不能有构造函数.