class A
{
public readonly int _X;
public A()
{
_X=3;
}
}
class B:A
{
public B()
{
//Init _X?
}
}
A多一个重载版本,可以传参的
class A
{
public readonly int _X;
public A(int x)
{
_X = x;
}
public A() { }
}
class B : A
{
public B(int x):base(x) { }
}
B b = new B(12);
不能初始化,readonly只能由构造函数或者字段定义时一次性赋值。如果你希望派生类可以修改/赋值,而类的外部不能修改,可以使用只读属性,写法是:
public int _X { get; private set; }
既然定义成readonly为什么还要重新赋值呢?