标签:class view 必须 div 引用 using 关键字 ogr from
FROM P102
构造函数也可以声明为static。实例构造函数初始化类的每个新实例,而static构造函数初始化类级别的项。通常,静态构造函数初始化类的静态字段。
--初始化类级别的项的时间:
□在引用任何静态成员之前
□在创建类的任何实例之前
--静态构造函数在以下方面与实例构造函数类似
□静态构造函数的名称必须和类名相同
□构造函数不能返回值
--静态构造函数在以下方面和实例构造函数不同
□静态构造函数声明中使用static关键字
□类只能有一个静态构造函数,且不能带参数
□静态构造函数不能有访问修饰符
以下即为一个静态构造函数的示例。其形式和实例构造函数相同,只是增加了static关键字。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace review 8 { 9 class class1 10 { 11 public static int z; 12 int t; 13 static class1() 14 { 15 16 } 17 } 18 class class2 19 { 20 public static int z; 21 int t; 22 static class2() 23 { 24 z = 1; 25 } 26 } 27 class Program 28 { 29 static void Main(string[] args) 30 { 31 class1 p = new class1(); 32 Console.WriteLine(class1.z.ToString()); 33 class2 q = new class2(); 34 Console.WriteLine(class2.z.ToString()); 35 Console.Read(); 36 } 37 } 38 }
输出为:
0
1
通过这个例子,我们可以了解到:
1、之前所了解到的,在自己未写构造函数时,编译器会自动加上一个无参的默认构造函数。对于这一点,静态构造函数不包含在内,即就算自己写了静态构造函数,但如果没写其他构造函数,那么编译器仍然会自动加上一个无参的默认构造函数。
2、静态字段如果没有赋初值,也会像类字段一样,用空值作为默认值。(对于这里的int就是用0作为默认值)
关于静态构造函数,一些其他需要注意的有:
--类既可以有静态构造函数也可以有实例构造函数
--如同静态方法,静态构造函数不能访问所在类的实例成员,因此也不能使用this访问器
--不能从程序中显示调用静态构造函数,系统会自动调用它们,在:
□类的任何实例被创建之前
□类的任何静态成员被引用之前
标签:class view 必须 div 引用 using 关键字 ogr from
原文地址:https://www.cnblogs.com/quintessence/p/9098090.html