public class ClassA
{
public static readonly string processName;
}
public class ClassB : ClassA
{
static ClassB()
{
processName = "MyProcess.exe";
}
}
编译上述 C# 代码时出现错误。
错误说-“不能分配静态只读字段(静态构造函数或变量初始化程序除外)”
但我在静态构造函数中分配它。
对这样一个静态变量的需求是,基类有使用这个变量的方法,但是派生类和基类必须有这个变量的不同值。但是该值在相应类的所有实例中是恒定的。它必须是只读的,因为它不能被任何地方更改。
上述代码中的错误是什么?(如果有的话)我似乎无法找到一个。错误消息没有帮助。因为我没有做错任何事情。
如果有错误,我该如何实现这个功能?我知道一个简单的解决方法是使其成为实例变量并在派生类中为它们分配不同的值。但这是不必要的,因为该值在相应类的所有实例中都是恒定的。