需要澄清C#静态变量

时间:2014-10-30 05:53:05

标签: c# variables static

我试过这个但我无法找到问题的明确答案。

什么时候可以实际更改静态变量?

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

4 个答案:

答案 0 :(得分:4)

  1. 静态字段/属性可以在任何地方更改 - 根据其可见性(公共,私有,内部等)。例如,可以通过类的所有实例更改专用静态字段。
  2. 如果变量是静态的,则它不是成员变量,因为它不属于特定实例。最好将它们称为静态变量(而不是静态成员变量)

答案 1 :(得分:1)

如果静态成员变量不是Readonly,则在将值赋值给变量时,将更改变量它将在应用程序的生命周期中保留,不变。

此外,您不需要任何实例来为变量

分配值

答案 2 :(得分:0)

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

使用它们时应该非常小心,因为它们会引起许多麻烦,并且只能出于特定原因使用它们。

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

答案 3 :(得分:0)

静态变量可以编辑与访问权限相关的任何位置。它只是非静态变量。但有共同的记忆(班级记忆)

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

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

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

但NumberOfPersons案例不同。当新人来临时,你只需在NumberOfPersons上加1。如果你没有为此保留一个公共的类级别变量,你会有很多头疼,就像你需要去每个对象增加一个,内存浪费等。

但是在姓名和年龄的情况下,需要个人记忆。一个人的名字不应该由另一个对象写。所以这是非静态的

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

时,非静态将分配内存

希望明确

谢谢&问候 Binesh Nambiar C