2011-05-22 53 views
0

我正在用C#开发一个程序,并且需要一个可用于我的程序中所有类的可变变量。所有类都可用的变量?

例如,我想在程序启动时将其设置为默认值,即false,然后在发生操作时能够将其更改为true。然后当其他类读取它时需要传送该值。

这是如何实现的?

+4

静态属性? – driis 2011-05-22 14:55:42

+0

这是一个问题? – 2011-05-22 15:00:21

+0

我是C#的新手 - 我的问题是我无法弄清楚如何访问我在'Program'类中声明的静态变量。事实证明,在'Program.myVar'上这很简单。咄! – Johnny 2011-05-22 15:02:13

回答

2

怎么样?:静态

public static class MyProps 
{ 
    public static bool MyProp { get; set; } 
} 

在您的代码:

MyProps.MyProp = true; 

没有必要的,因为布尔总是初始化到false初始化。

0

听起来像你需要某个地方某个类中的静态成员。

class MyClass { 
    static bool ms_MyStatic = false; 
} 

...您可以在任何地方将其引用为MyClass.ms_MyStatic。

1

三个选项:

  • 使它成为一个特定类型的实例变量,并确保每一个类可以访问相同的实例
  • 使其成为一个特定类型的
  • 某处的静态变量在之间:使其成为singleton type中的实例变量。

个人而言,我将有利于与一起选择依赖注入第一种方法 - 但想想哪些类真的需要了解这一点。你的程序中每类真的是吗?

全局状态(通过静态变量)和单例使得代码更难测试。

此外,我一定会把它变成一个私有变量,并有一个属性来访问它。

相关问题