我有一个应该在构造函数中实例化的私有类型.我有基础构造函数和另一个带参数.我在基础中保持实例化,只在参数化构造函数中进行变量赋值.但它没有用.
这不起作用.
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未初始化
你this()不想要base().您想要在同一个类上调用构造函数,而不是它的基类:
public MainClass(string inParm) : this()
{
myParm = inParm;
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,类会调用其基类的默认构造函数,因为它是构造自身的要求.如果基类上没有默认构造函数,则必须提供正确的参数以满足基类的构造.
但是你的基类是Object,所以不用担心它.
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |