我正在用C#开发一个程序,并且需要一个可用于我的程序中所有类的可变变量。所有类都可用的变量?
例如,我想在程序启动时将其设置为默认值,即false
,然后在发生操作时能够将其更改为true
。然后当其他类读取它时需要传送该值。
这是如何实现的?
我正在用C#开发一个程序,并且需要一个可用于我的程序中所有类的可变变量。所有类都可用的变量?
例如,我想在程序启动时将其设置为默认值,即false
,然后在发生操作时能够将其更改为true
。然后当其他类读取它时需要传送该值。
这是如何实现的?
怎么样?:静态
public static class MyProps
{
public static bool MyProp { get; set; }
}
在您的代码:
MyProps.MyProp = true;
没有必要的,因为布尔总是初始化到false
初始化。
听起来像你需要某个地方某个类中的静态成员。
class MyClass {
static bool ms_MyStatic = false;
}
...您可以在任何地方将其引用为MyClass.ms_MyStatic。
三个选项:
个人而言,我将有利于与一起选择依赖注入第一种方法 - 但想想哪些类真的需要了解这一点。你的程序中每类真的是吗?
全局状态(通过静态变量)和单例使得代码更难测试。
此外,我一定会把它变成一个私有变量,并有一个属性来访问它。
静态属性? – driis 2011-05-22 14:55:42
这是一个问题? – 2011-05-22 15:00:21
我是C#的新手 - 我的问题是我无法弄清楚如何访问我在'Program'类中声明的静态变量。事实证明,在'Program.myVar'上这很简单。咄! – Johnny 2011-05-22 15:02:13