我有以下类:
public abstract class ExampleClass
{
public static readonly float updateRate = 12;
}
我想建立它的一个.dll使用它在我的其他项目,并保持updateRate为常数(或只读静态)。
当我使用内用ExampleClass中的.dll文件,我希望能够通过使用该.dll项目,并通过继承抽象类ExampleClass中的类来改变常数。
我尝试添加虚拟的,但它并不适用于静态只读,也不是常量。我不断探索方法,但它似乎是C#不实现这些。
有没有一种方法可以让我允许使用ExampleClass.dll改变updateRate的价值,可能是通过继承程序员?
常数的含义是不可改变的。一旦它宣布你不能改变一个常数。事实上,以恒定的每一个基准换成这是在编译时的值。
static readonly
不是一个常数 - 但它是只读的,为此不能改变。此外,静态成员不完全继承 - 他们属于他们那里宣布对阶级,正如你意识到自己不能被覆写。
你能做什么,但是,是得到的app.config值。这样一来,每一个使用此DLL项目可以有它自己的这个static readonly
字段的值:
public static readonly float updateRate =
float.Parse(ConfigurationManager.AppSettings["updateRate"]);