如何创建一个零构造函数的类,就像没有构造函数的MessageBox类一样.我不能使这个类静态,因为在它中声明了一个公共静态方法,并且该方法使该类成为对象.在C#3.5中
我想使这个类就像System.Windows.Forms.MessageBox类,其中没有构造函数,当我们创建此类的对象时出现错误:
这个类没有构造函数
当对象创建错误时,作为具有私有构造函数的类的位置 -
由于其保护级别,构造函数无法访问.
创建没有构造函数的类的唯一方法是使用static class.
但是,似乎您希望能够从类本身内部创建此类的实例,这对于静态类是不可能的.为此,您应该为类提供一个私有构造函数:
class Foo
{
private Foo() { }
public static Foo Create()
{
return new Foo(); // Only members of Foo can directly invoke the constructor.
}
}
Run Code Online (Sandbox Code Playgroud)
如果同一程序集中Foo外部的方法试图实例化Foo,则给出的消息将是由于其保护级别而无法访问构造函数.如果您尝试从另一个程序集访问它,它将给出Foo没有构造函数的消息.
| 归档时间: |
|
| 查看次数: |
2357 次 |
| 最近记录: |