C# 基本构造函数未执行
我有一个私有类型,应该在构造函数中实例化。我有基本构造函数和另一个带参数的构造函数。我在基中保持实例化,在参数化构造函数中只保留变量赋值。但它不起作用C# 基本构造函数未执行,c#,C#,我有一个私有类型,应该在构造函数中实例化。我有基本构造函数和另一个带参数的构造函数。我在基中保持实例化,在参数化构造函数中只保留变量赋值。但它不起作用 public class MainClass { private MyType myType = null; private string myParm = string.Empty; private MainClass() { myType = new MyType(); }
public class MainClass
{
private MyType myType = null;
private string myParm = string.Empty;
private MainClass()
{
myType = new MyType();
}
public MainClass(string inParm) : base()
{
myParm = inParm;
}
}
这是行不通的
public class MainClass
{
private MyType myType = null;
private string myParm = string.Empty;
private MainClass()
{
myType = new MyType();
}
public MainClass(string inParm) : base()
{
myParm = inParm;
}
}
下面的程序正在运行
public class MainClass
{
private MyType myType = null;
private string myParm = string.Empty;
private MainClass()
{
}
public MainClass(string inParm): base()
{
myType = new MyType();
myParm = inParm;
}
}
myType保存在基本构造函数中时未初始化您希望它不是基本构造函数。要在同一个类而不是基类上调用构造函数:
public MainClass(string inParm) : this()
{
myParm = inParm;
}
默认情况下,类将调用其基类的默认构造函数,因为它需要构造自身。如果基类上没有默认构造函数,则必须提供正确的参数以满足基类的构造
但是您的基类是Object,所以不必担心它。您必须调用它而不是base,因为您没有调用父构造函数:
public class MainClass
{
private MyType myType = null;
private string myParm = string.Empty;
private MainClass()
{
myType = new MyType();
}
public MainClass(string inParm)
: this()
{
myParm = inParm;
}
}
base用于调用父类的构造函数,父类是该类的对象。对象对myType一无所知。你可能在找这个,我现在明白了。谢谢你的解释