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