如何以及何时在C#中调用基类构造函数

use*_*079 8 c#

如何以及何时在C#中调用基类构造函数

Bre*_*art 16

您可以像这样调用基类构造函数:

// Subclass constructor
public Subclass() 
    : base()
{
    // do Subclass constructor stuff here...
}
Run Code Online (Sandbox Code Playgroud)

如果存在所有子类需要设置的内容,则可以调用基类.需要初始化的对象等...

希望这可以帮助.

  • 您也可以像这样调用基类构造函数:`public Subclass(){}` - 这与您的示例具有完全相同的行为. (6认同)

And*_*ite 9

从子类构造函数中调用基类构造函数通常是一种很好的做法,以确保基类在子类之前初始化自身.您可以使用base关键字来调用基类构造函数.请注意,您还可以使用this关键字在类中调用另一个构造函数.

以下是如何执行此操作的示例:

public class BaseClass
{
    private string something;

    public BaseClass() : this("default value") // Call the BaseClass(string) ctor
    {
    }

    public BaseClass(string something)
    {
        this.something = something;
    }

    // other ctors if needed
}

public class SubClass : BaseClass
{
    public SubClass(string something) : base(something) // Call the base ctor with the arg
    {
    }

    // other ctors if needed
}
Run Code Online (Sandbox Code Playgroud)

  • 这不仅仅是一种好的做法,而是编译器强制执行的要求.[无论你喜欢与否,都会调用基础构造函数.](http://stackoverflow.com/questions/3265958/how-can-i-tell-the-inheriting-class-to-not-call-its-基类参数少-CO) (6认同)