您的位置:首页 > 编程语言 > C#

C#中的“静态”

2015-08-19 14:47 113 查看
静态构造函数:

C#的一个新特征是也可以给类编写无参数的静态构造函数。编写静态构造函数的一个原因是,类有一些静态字段或属性,需要在第一次使用类之前,从外部源中初始化这些静态的字段和属性。

.NET运行库没有确保什么时候执行静态构造函数,所以不能把要求在某个特定时刻执行的代码放在静态构造函数中。也不能预计不同类的静态构造函数按照什么顺序执行。但是可以确保静态构造函数至多运行一次,即在代码引用类之前调用它。

静态构造函数没有访问修饰符,其他C#代码从来不调用它,但在加载类时,总是由.NET运行库调用它,所以像public或private这样的访问修饰符就没有任何意义。

出于同样的原因,静态构造函数不能带任何参数,一个类只能有一个静态构造函数。很显然,静态构造函数只能访问类的静态成员,不能访问类的实例成员。

注意,无参数的实例构造函数与静态构造函数可以在一个类中同时定义。尽管参数列表相同,但这并不矛盾,因为在加载类时执行静态构造函数,而在创建实例使执行实例构造函数,所以何时执行哪个构造函数并不冲突。

class BaseClass
{
private static int count;
static BaseClass()
{
count = 0;
console.writeline("aaa");
}
}


静态字段:

使用static修饰 属于类,不属于某个实例。

与实例字段一样,可以在声明的同时进行初始化。

与实例字段不同,如果没有对静态字段进行初始化,静态字段将自动获取默认值(0,null,false等)。所以,一个静态字段即使没有被显示地赋值,也可以被访问。

访问需要使用 类名.静态字段名,不能使用 对象名.静态字段名

静态方法:

使用static修饰,直接使用 类名.方法名

静态方法的函数体内不能直接使用非静态成员,也没有this.

静态类:

如果类只包含静态的方法和属性,该类就是静态类。静态类在功能上与使用私有静态构造函数创建的类相同,不能创建静态类的实例。

静态类是不能实例化的,我们直接使用它的属性与方法,静态类最大的特点就是共享。

public static class StaticTestClass
{
public static int n = 0;

public static void Add()
{
n++;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: