c# - 为什么 MessageBox 类在 C# 中没有默认构造函数?

标签 c# .net constructor

案例一:

我正在尝试这个

MessageBox m = new MessageBox();

出现编译错误

'System.Windows.Forms.MessageBox' has no constructors defined

案例二:
然后,我创建了一个没有构造函数的类

class myClass
{

}

并尝试了 myClass my = new myClass(); 这次我没有发现错误。

现在,我的问题:

  • 为什么我在第一种情况下出错?

既然都是类,而且每个类都有默认的构造函数,那么

  • 第一种情况下的默认构造函数在哪里?

最佳答案

构造函数可以是privateprotected 以禁止直接实例化。请改用静态工厂方法。 MessageBox 类中有一个静态方法Show

Archil 也是对的。如果定义了显式构造函数,则不再创建隐式默认构造函数。

关于 x0ns 评论:是的,实例化静态类也是不可能的。不要使用静态类,那是糟糕的设计(也有异常(exception))。

关于c# - 为什么 MessageBox 类在 C# 中没有默认构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5523908/

相关文章:

C#并行IO完成端口

c++ - 实际上什么返回类型有一个新的?

java - 使用构造函数扩展类

java - 如何创建一个不使用 jmockit 的虚拟实例?

c# - 在 javascript 中捕获从 C# Web 服务抛出的异常

c# - AmazonCloudWatchLogsClient 异步方法失败但没有错误

javascript - 我怎样才能得到asp :Panel to work properly with asp:RadioButtonList without AutoPostBack?

c# - Entity Framework 中有自动关联吗?

C#在运行时向项目添加嵌入式资源

C# 命名空间中的枚举与类中的枚举有什么区别