public class ClassA
{
public static readonly string processName;
}
public class ClassB : ClassA
{
static ClassB()
{
processName = "MyProcess.exe";
}
}
在编译以上C#代码时,我遇到了一个错误。
错误信息为--“静态readonly字段无法被分配(除非在静态构造函数或变量初始化器中)”。
但是我是在静态构造函数中进行赋值的。
需要这样一个静态变量的原因是,基类有使用此变量的方法,但派生类和基类必须具有不同的值。但是该值在各自类的所有实例中都是常量。它必须是只读的,因为不能从任何地方更改它。
以上代码是否存在错误?(如果有的话)我似乎无法发现其中的错误。错误信息没有提供帮助。因为按照错误提示所说的,我并没有做错什么。
如果存在错误,那么如何实现这个功能呢?我知道一个简单的解决方法是将其作为实例变量,并在派生类中为它们分配不同的值。但这是不必要的,因为该值在各自类的所有实例中都是常量。