2014-10-30 174 views
-1

我试过搜索这个,但我无法找到明确的答案我的问题。需要澄清C#静态变量

你什么时候可以改变一个静态变量?

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

+2

只要它不是只读的非静态将配发的内存,你可以改变它,只要你想 – 2014-10-30 05:54:31

回答

3
  1. 静态字段/属性可根据其可见性(公共,私人,内部等)进行更改。例如,一个私有静态字段可以被该类的所有实例改变。
  2. 如果一个变量是静态的,它不是一个成员变量,因为它不属于特定的实例。更好地称他们为静态变量(而不是静态成员变量)
1

如果静态成员变量不是只读的,可变将在分配价值变量的时间来改变。并且它将在应用程序的生命周期中保持不变。

你也不需要任何实例的值赋给变量

0

静态变量可以相对于访问权限编辑任何地方。它只是像非静态变量。但是具有共同的存储器(类级存储器)

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

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

在该上面的例子中单个存储器必须为每个人。

但是NumberOfPersons案件是不同的。当新人来到时,您只需将NumberOfPersons加1。如果你没有为此保留一个普通的班级变量,你将有很多头疼,就像你需要去每个对象增量一,内存浪费等。

但是在名称和年龄的情况下个人记忆是必需的。一个人的名字不应该被另一个对象覆盖。所以这是非静态的

理论上 - 静态将具有共同的内存和负载,而类加载。当对象创建

的希望明确

感谢&问候 Binesh南比亚尔Ç