1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
5
namespace
CSharpFoundationStudy
6
{
7
/**//*
8
* 静态构造函数:
9
* (1)用于对静态字段、只读字段等的初始化。
10
* (2)添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。
11
* (3)类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数
12
* (4)静态构造函数是不可继承的,而且不能被直接调用。
13
* (5)如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。
14
* (6)任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。
15
* (7)如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数。
16
*/
17
18
/**//*
19
* 定义一个类的时候,如果没有加任何修饰符,则默认为internal
20
* 如果在类中定义一个成员的时候,没有加任何修饰符,则默认是private.
21
* 另外protected访问权限指只能被继承者访问,与C++相同
22
*/
23
24
//标记为sealed的类不能被继承
25
//静态构造函数实现单件模式
26
public sealed class SinglePattern
27
{
28
private static SinglePattern only;
29
30
public static SinglePattern Instance
31
{
32
get
33
{
34
return only;
35
}
36
}
37
38
//static函数中只能访问static成员,因为静态成员与函数是相对于类的,而非静态则是相对于某个具体对象的
39
//静态成员也不能通过this来访问
40
static SinglePattern()
41
{
42
Console.WriteLine("SinglePattern");
43
only = new SinglePattern();
44
}
45
46
//屏蔽默认构造函数
47
private SinglePattern()
48
{
49
}
50
}
51
}

2

3

4

5

6



7


8

9

10

11

12

13

14

15

16

17

18


19

20

21

22

23

24

25

26

27



28

29

30

31



32

33



34

35

36

37

38

39

40

41



42

43

44

45

46

47

48



49

50

51
