我在基础抽象类中有一个字段.我想让这个字段只读,以便在初始化子类后它的值不会改变.
但是抽象类不能有构造函数,而readonly只能从构造函数初始化.
怎么做到这一点?
Jul*_*ian 10
例如,您可以从子类构造函数中调用基类的构造函数,如下所示:
基类中的只读字段和构造函数:
public readonly int MyInt;
protected TheBaseClass(int myInt)
{
this.MyInt = myInt;
}
Run Code Online (Sandbox Code Playgroud)
儿童班的建设者:
public TheChildClass() : base(42)
{
}
public TheChildClass(int i) : base(i)
{
}
Run Code Online (Sandbox Code Playgroud)
abstractclass 可以有构造函数.
public abstract class MyAbstract
{
protected readonly string SomeField;
public MyAbstract()
{
SomeField = "Some";
}
}
public abstract class MyInheited
{
public MyInheited(): base()
{
}
}
Run Code Online (Sandbox Code Playgroud)
如果我是你,我会让该字段不是只读保护字段,而是将其公开为公共只读属性
| 归档时间: |
|
| 查看次数: |
6513 次 |
| 最近记录: |