原文地址:http://blog.csdn.net/linoble/archive/2006/11/01/1360865.aspx
类的成员要么是静态的,要么是动态的,假如将类的某个成员声明为static,则该成员是静态成员。
类的静态成员是属于类任何,不必产生类的实例就能够访问他,就是只用类名就能够访问
静态成员为类的任何实例所共享,无论这个类创建了多少个实例,一个静态成员在内存中只占有一块区域.
类的非静态成员属于类的实例任何,每创建一个类的实例,都在内存中为非静态成员开辟了一块区域
静态方法只能访问类例的静态字段,而非静态方法能够访问类例的任何字段
静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。
![静态类](http://msdn2.microsoft.com/msdn/Controls/CollapsibleArea/en-us/minus.gif)
类可以声明为static的,以指示它仅包含静态成员。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。
使用静态类来包含不与特定对象关联的方法。例如,创建一组不操作实例数据并且不与代码中的特定对象关联的方法是很常见的要求。您应该使用静态类来包含那些方法。
静态类的主要功能如下:
-
它们仅包含静态成员。
-
它们不能被实例化。
-
它们是密封的。
-
它们不能包含实例构造函数(C# 编程指南)。
因此创建静态类与创建仅包含静态成员和私有构造函数的类大致一样。私有构造函数阻止类被实例化。
使用静态类的优点在于,编译器能够执行检查以确保不致偶然地添加实例成员。编译器将保证不会创建此类的实利。
静态类是密封的,因此不可被继承。静态类不能包含构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。有关更多信息,请参见静态构造函数(C# 编程指南)。
![静态成员](http://msdn2.microsoft.com/msdn/Controls/CollapsibleArea/en-us/minus.gif)
即使没有创建类的实例,也可以调用该类中的静态方法、字段、属性或事件。如果创建了该类的任何实例,不能使用实例来 访问静态成员。只存在静态字段和事件的一个副本,静态方法和属性只能访问静态字段和静态事件。静态成员通常用于表示不会随对象状态而变化的数据或计算;例 如,数学库可能包含用于计算正弦和余弦的静态方法。
在成员的返回类型之前使用 static 关键字来声明静态类成员,例如:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
静态成员在第一次被访问之前并且在任何静态构造函数(如调用的话)之前初始化。若要访问静态类成员,应使用类名而不是变量名来指定该成员的位置。例如:
Automobile.Drive();
int i = Automobile.NumberOfWheels;
![示例输出:](http://msdn2.microsoft.com/msdn/Controls/CollapsibleArea/en-us/minus.gif)
Please select the convertor
1. From Celsius to Fahrenheit.
2. From Fahrenheit to Celsius.
:2
Please enter the Fahrenheit temperature: 98.6
Temperature in Celsius: 37.00
附加的示例输出可能如下所示:
Please select the convertor
1. From Celsius to Fahrenheit.
2. From Fahrenheit to Celsius.
:1
Please enter the Celsius temperature: 37.00
Temperature in Fahrenheit: 98.60