发布时间:2019-07-11 09:55:55编辑:auto阅读(1922)
public interface Observer
{
void Response(); //观察者的响应,如是老鼠见到猫的反映
}
public interface Subject
{
void AimAt(Observer obs); //针对哪些观察者,这里指猫的要扑捉的对象---老鼠
}
public class Mouse : Observer
{
private string name;
public Mouse(string name, Subject subj)
{
this.name = name;
subj.AimAt(this);
}
public void Response()
{
Console.WriteLine(name + " attempt to escape!";
}
}
public class Master : Observer
{
public Master(Subject subj)
{
subj.AimAt(this);
}
public void Response()
{
Console.WriteLine("Host waken!";
}
}
public class Cat : Subject
{
private ArrayList observers;
public Cat()
{
this.observers = new ArrayList();
}
public void AimAt(Observer obs)
{
this.observers.Add(obs);
}
public void Cry()
{
Console.WriteLine("Cat cryed!";
foreach (Observer obs in this.observers)
{
obs.Response();
}
}
}
class MainClass
{
static void Main(string[] args)
{
Cat cat = new Cat();
Mouse mouse1 = new Mouse("mouse1", cat);
Mouse mouse2 = new Mouse("mouse2", cat);
Master master = new Master(cat);
cat.Cry();
}
}
class Program
{
static void Main(string[] args)
{
Class1 o1 = new Class1();
Class1 o2 = new Class1();

}
}
class Class1
{
private static int count = 0;
static Class1()
{
count++;
}
public Class1()
{
count++;
}
}| (1)用于对静态字段、只读字段等的初始化。 | ||||||||||
| (2)添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。 | ||||||||||
| (3)类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数 | ||||||||||
| (4)静态构造函数是不可继承的,而且不能被直接调用。 | ||||||||||
| (5)如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。 | ||||||||||
| 任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。 | ||||||||||
|
(6)如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数。 | ||||||||||
上一篇: Python脚本email
下一篇: GNS3 on Centos / Red
51225
50650
41264
38077
32544
29448
28309
23169
23130
21463
1527°
2238°
1864°
1802°
2100°
1853°
2536°
4258°
4112°
2935°