函数的所有行为对派生类影响都是一样的时候,可以定义为静态,静态成员就相当于一个带有命名空间的全局函数,它不需要实例化,不需要this指针,它和实例无关,只和类有关,一定程度上加强的类的安全性,在其他一些方面也很有好处,例如:1、可以封装某些算法,调用简单;2、有助于实现一些简单的设计模式;3、有助于类的封装。
静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量。
static变量在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一C#静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值。
静态函数的实现里不能使用非静态成员
C#静态方法及属性在程序启动的时候,就全部装入内存的,而不管这些方法、属性以后有没有用到。即使是没有人再访问程序,这部分内存仍然不会释放还有就是,所有访问者看到的静态属性的数据几乎都是一样的,比如A用户设置了UserName这个属性,B用户访问的时候,得到的UserName仍然是A用户设置的那个。这种特性,如果用在固定数据中,那不会有太大问题,比如连接字符串之类的
C#静态方法/数据成员是属于类的,不是属于某一个对象的,因而调用它不需要实例化;静态方法和静态数据成员相当于共享变量。为该类的所有对象所共有,因而在需要共享数据时,定义这种类型时很好的选择。 一但定义一个类后(不一定要实例化对象)该类的所有静态成员就载入内存(并不是程序启动,就装入内存,没有定义该类时它不会载入内存) 静态成员的作用域与它所属的类的作用域相同
这东西意味着你的程序运行完毕.即使没有实例化对象.在内存中也是存在这些内容的.
所以对于运行速度上有很大的影响(大项目如果全用这个)
所以.并不经常用