如何创建一个没有任何构造函数的类,就像MessageBox类一样

Hai*_*ihi 2 c# class winforms

如何创建一个零构造函数的类,就像没有构造函数的MessageBox类一样.我不能使这个类静态,因为在它中声明了一个公共静态方法,并且该方法使该类成为对象.在C#3.5中

我想使这个类就像System.Windows.Forms.MessageBox类,其中没有构造函数,当我们创建此类的对象时出现错误:

这个类没有构造函数

当对象创建错误时,作为具有私有构造函数的类的位置 -

由于其保护级别,构造函数无法访问.

Sve*_*ven 6

创建没有构造函数的类的唯一方法是使用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没有构造函数的消息.