我正在用C#开发一个程序,需要一个可变的变量,可供我程序中的所有类使用。
例如,我想在程序启动时将其设置为默认值,例如false
,然后在发生操作时将其更改为true
。然后,当其他类读取它时,需要传达true
值。
如何实现这一目标?
答案 0 :(得分:2)
静态怎么样?:
public static class MyProps
{
public static bool MyProp { get; set; }
}
在您的代码中:
MyProps.MyProp = true;
无需初始化,因为布尔值始终初始化为false
。
答案 1 :(得分:2)
三个选项:
就个人而言,我赞成第一种与依赖注入相结合的方法 - 但想想真正需要了解哪些类。它是否真的你的程序中的每个类?
全局状态(通过静态变量)和单例使代码更难以测试。
另外,我肯定会把它变成私有变量并且有一个属性来访问它。
答案 2 :(得分:0)
听起来你需要某个类中的静态成员。
class MyClass {
static bool ms_MyStatic = false;
}
...您可以在任何地方将其称为MyClass.ms_MyStatic。