当前位置:首页 > Windows程序 > 正文

C#中的“静态”

2021-03-27 Windows程序

静态构造函数:
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++; } }

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68270.html