基础构造函数未执行

Sek*_*kar 0 c#

我有一个应该在构造函数中实例化的私有类型.我有基础构造函数和另一个带参数.我在基础中保持实例化,只在参数化构造函数中进行变量赋值.但它没有用.

这不起作用.

public class MainClass
{
    private MyType myType = null;
    private string myParm = string.Empty;

    private MainClass()
    {
        myType = new MyType();
    }

    public MainClass(string inParm) : base()
    {
        myParm = inParm;
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是有效的,

public class MainClass
{
    private MyType myType = null;
    private string myParm = string.Empty;

    private MainClass()
    {
    }

    public MainClass(string inParm): base()
    {
        myType = new MyType();
        myParm = inParm;
    }
}
Run Code Online (Sandbox Code Playgroud)

保存在基础构造函数中时,myType未初始化

Jon*_*lis 7

this()不想要base().您想要在同一个类上调用构造函数,而不是它的基类:

public MainClass(string inParm) : this()
{
   myParm = inParm;
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,类会调用其基类的默认构造函数,因为它是构造自身的要求.如果基类上没有默认构造函数,则必须提供正确的参数以满足基类的构造.

但是你的基类是Object,所以不用担心它.