- 什么是静态
static静态的,不变的,在某个类中只有一个,不会因实例化对象的不同而不同。static可以修饰类、字段、属性、方法等。如一个方法前加上static修饰后要对其进行调用可以直接通过类名点出来,不用再对类进行实例化。
- 静态类
-只能包含静态成员(静态方法或静态变量),非静态成员是不能使用的,而非静态类可以包含静态的方法、字段、属性或事件,且无论对这个非静态类创建多少个实例,它的静态成员都只有一个。
-不能对其实例化。
-不能被继承,因为静态类本质是一个抽象的密封类。
-不能包含实例构造函数。
- 静态变量
-static只能修饰成员变量,不能修饰局部变量。
-表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值。
-静态变量一直记录变量的值,一直到下次赋值时。
-不同线程下访问的静态属性总是同一属性,如果某一线程更改了属性值,将造成其他线程访问属性值的错误。因此方法中访问同一静态属性就需要使用lock关键字,或创建互斥对象来保持静态属性在同一时间只能被某一对象的属性或方法访问。
-静态成员只被创建一次,所以静态成员只有一份,而实例成员有多少个对象,就有多少个成员。
static int i = 10;
static void Main(string[] args)
{
Console.WriteLine(Add());
Console.WriteLine(Add2());
Console.ReadLine();
}
static int Add()
{