C#alternate无参数构造函数

Wil*_*sch 2 c# constructor multiple-constructors

是否可以为C#类定义备用无参数构造函数?

换句话说,我有一堂课Foo.我想要一个默认的构造函数Foo()和另一个构造函数SpecialFoo().我不介意SpecialFoo()构造函数是否调用Foo()构造函数.

我能这样做吗?

Mar*_*zek 7

您只能有一个具有给定参数集的构造函数,因此您不能拥有两个无参数构造函数.

您可以使用另一个public static Foo SpecialFoo方法,它将是工厂方法并将返回Foo类的新实例,但要使用它,您将不使用new关键字:

class Foo
{
    public static Foo SpecialFoo()
    {
        return new Foo();
    }
}
Run Code Online (Sandbox Code Playgroud)
var instance1 = new Foo();
var instance2 = Foo.SpecialFoo();
Run Code Online (Sandbox Code Playgroud)