编程语言
首页 > 编程语言> > c# – 如何简化多个构造函数?

c# – 如何简化多个构造函数?

作者:互联网

我想为一个类有两个构造函数,如下所示:

public MyClass()
{
    // do stuff here
}

public MyClass(int num)
{
    MyClass();
    // do other stuff here
}

以上是达到我目的的正确方法吗?有什么样的速记更好吗?

解决方法:

public MyClass()
{
    // do stuff
}

public MyClass(int num)
    : this ()
{
    // do other stuff with num
}

:this()位称为构造函数初始化程序. C#中的每个构造函数都有一个初始化器,它在构造函数本体之前运行.默认情况下,初始化器是基类的无参数构造函数(如果未从另一个类显式派生类,则为Object).这可以确保在构造其他派生类之前,基类的成员可以正确初始化.

可以通过两种方式覆盖每个构造函数的默认构造函数初始化程序.

>:this(…)构造指定同一个类中的另一个构造函数作为应用它的构造函数的初始化器.
>:base(…)构造指定基类中的构造函数(通常不是无参数构造函数,因为这是默认的).

有关您可能想要的更多详细信息,请参阅C#4.0语言规范部分10.11.

标签:c,constructor,visual-studio-2005,multiple-constructors
来源: https://codeday.me/bug/20190714/1455467.html