【问题标题】:need clarification on C# static variables需要澄清 C# 静态变量
【发布时间】:2014-12-26 01:54:56
【问题描述】:

我已尝试搜索此内容,但无法找到问题的明确答案。

什么时候可以真正改变静态变量?

据我了解,您只能在静态构造函数中更改它。但我不确定,对此的任何帮助将不胜感激。

【问题讨论】:

  • 只要不是只读的,你可以随时修改

标签: c# variables static


【解决方案1】:
  1. 可以在任何地方更改静态字段/属性 - 根据其可见性(公共、私有、内部等)。例如,私有静态字段可以被该类的所有实例更改。
  2. 如果变量是静态的,它就不是成员变量,因为它不属于特定的实例。最好称它们为静态变量(而不是静态成员变量)

【讨论】:

    【解决方案2】:

    如果静态成员变量不是只读的,则变量将在将值分配给变量时更改。并且它将在应用程序的生命周期内保持不变,保持不变。

    您也不需要任何实例为变量赋值

    【讨论】:

      【解决方案3】:

      静态可以在任何地方更改,它本质上是一个不需要实例化的全局变量。

      您应该非常小心地使用它们,因为它们会给您带来很多麻烦,并且只能用于特定原因。

      What is the use of static variable in C#? When to use it? Why can't I declare the static variable inside method?

      【讨论】:

        【解决方案4】:

        静态变量可以编辑关于访问权限的任何地方。它只像非静态变量。但有共同的记忆(类级记忆)

        如果你是初学者,我会举个例子

        class Person
        {
            static int NumberOfPersons;
            string name;
            int age;
        }
        

        在上面的示例中,每个人都需要单独的记忆。

        但 NumberOfPersons 的情况不同。当新人来时,您只需将 NumberOfPersons 加 1。如果你没有为此保留一个通用的类级别变量,你会很头疼,比如你需要去每个对象增加一个,内存浪费等等。

        但如果是姓名和年龄,则需要单独的记忆。一个人的名字不应该被另一个对象覆盖。所以这是非静态的

        理论上 - 静态将在类加载时具有公共内存和负载。对象创建时非静态会分配内存

        希望明确

        感谢和问候 Binesh Nambiar C

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-11-09
          • 2012-07-18
          • 1970-01-01
          • 2023-03-09
          • 1970-01-01
          • 1970-01-01
          • 2011-08-23
          相关资源
          最近更新 更多