说到static关键字之前我们不得不说说C#中的值的类型(当然,在C++中就不存在这一说法,在C++要么就会通过指针或者引用符号作为传参来完成),在C#中值的类型分为值类型和引用类型两种。
一、引用类型
首先说引用类型,引用类型就是不另外建立内存在存储,而是将变量指向一个确定的堆(系统分配的内存),需要人为的申请(一般都是用new来完成)和人为的清除。而值类型则是由系统自动管理(包括回收)
引用类型常见的就是我们使用最多的类。当然也包括数组,接口,委托;
二、值类型
除上述所述的类型外一般都属于值类型了,值类型的特点是便于对常用类型进行管理,所以,C#常用的数据类(int float 等都属于值类型,包括枚举,结构体)。这里要重点注意,虽然结构体和类有很多相似之处但结构体属于值类型。
三、静态变量
使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员static修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型
也就是说,如果一个类的静态变量或者方法,都是可以不实例化这个类就可以直接访问的。
四、实例变量
很明显,这种变量一定是要在类实例化后才能够使用。也就是说,它是没有static关键字修饰的。