Jav*_*ram 6 .net c# constructor
情况1:
我正在尝试这个
MessageBox m = new MessageBox();
Run Code Online (Sandbox Code Playgroud)
并得到编译错误
'System.Windows.Forms.MessageBox'没有定义构造函数
案例2:
然后,我创建了一个没有构造函数的类
class myClass
{
}
Run Code Online (Sandbox Code Playgroud)
并尝试myClass my = new myClass(); 这次我没有发现错误.
现在,我的问题:
因为,两个都是类,每个类都有默认构造函数
ata*_*man 15
构造函数可以是private或者protected为了禁止直接实例化.请改用静态工厂方法.有一个静态方法Show的MessageBox类.
Archil也是对的.如果定义了显式构造函数,则不再创建隐式默认构造函数.
关于x0ns注释:是的,实例化静态类也是不可能的.不要使用静态类,这是糟糕的设计(有例外).
在c#中,如果定义了NONE,则evey类自动具有默认构造函数.MessageBox定义了其他构造函数,因此它不会自动拥有默认构造函数