C# 所有类都可以使用可变变量吗?

C# 所有类都可以使用可变变量吗?,c#,variables,global,mutable,C#,Variables,Global,Mutable,我正在用C#开发一个程序,需要一个可用于程序中所有类的可变变量 例如,我想在程序启动时将其设置为默认值,例如false,然后在以后发生操作时将其更改为true。当其他类读取时,需要传递true值 如何实现这一点?静态测试如何 public static class MyProps { public static bool MyProp { get; set; } } 在代码中: MyProps.MyProp = true; 不需要初始化,因为布尔值总是初始化为false静态值怎么样

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

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

如何实现这一点?

静态测试如何

public static class MyProps
{
    public static bool MyProp { get; set; }
}
在代码中:

MyProps.MyProp = true;
不需要初始化,因为布尔值总是初始化为
false

静态值怎么样

public static class MyProps
{
    public static bool MyProp { get; set; }
}
在代码中:

MyProps.MyProp = true;

不需要初始化,因为布尔值总是初始化为
false

听起来像是在某个类中需要一个静态成员

class MyClass {
  static bool ms_MyStatic = false;
}

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

听起来您需要某个类中的静态成员

class MyClass {
  static bool ms_MyStatic = false;
}
…您可以在任何地方将其称为MyClass.ms\u MyStatic。

三个选项:

  • 使其成为特定类型的实例变量,并确保每个类都可以访问相同的实例
  • 使其成为特定类型的静态变量
  • 介于两者之间:将其作为
就我个人而言,我倾向于第一种方法与依赖注入相结合——但请思考哪些类真正需要了解这一点。这真的是你课程中的每一门课吗

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

此外,我肯定会将其设置为私有变量,并具有访问它的属性。

三个选项:

  • 使其成为特定类型的实例变量,并确保每个类都可以访问相同的实例
  • 使其成为特定类型的静态变量
  • 介于两者之间:将其作为
就我个人而言,我倾向于第一种方法与依赖注入相结合——但请思考哪些类真正需要了解这一点。这真的是你课程中的每一门课吗

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

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

我是C#的新手-我的问题是我不知道如何访问我在
程序
类中声明的静态变量。事实证明,在
Program.myVar
中,它也很简单。哼!我不熟悉C#-我的问题是我不知道如何访问我在
程序
类中声明的静态变量。事实证明,在
Program.myVar
中,它也很简单。哼!