using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using myns = System.Math;
using System.Data;
using System.Collections;
namespace ConsoleApplication22
{
public class Teacher
{
private string name;
public delegate void deletype();//定义委托
public event deletype classevnet;//实现事件定义
public Teacher(string name)
{
this.name=name;
}
public void start()
{
Console.WriteLine(name + "教师宣布开始上课");
if (classevnet != null)
classevnet();//触发事件
}
}
public class student
{
private string sname;
public student(string name)
{
this.sname = name;
}
public void listener()//事件的准备
{
Console.WriteLine("学生" + sname + "正在认真听课");
}
public void Record()
{
Console.WriteLine("学生" + sname + "正在认真记笔记");
}
public void Reading()
{
Console.WriteLine("学生" + sname + "正在认真阅读");
}
}
class Program
{
static void Main(string[] args)
{//事件类对象名.事件名+=new 委托类型名(事件处理方//就是相当于s1告诉t上课的时候叫他一声
Teacher t = new Teacher("李明");
student s1 = new student("徐强");
student s2 = new student("陈冰");
student s3 = new student("张英");
t.classevnet += new Teacher.deletype(s1.listener);//订阅者s1向事件源t(teacher对象)订阅事件ClassEven
t.classevnet += new Teacher.deletype(s2.Reading);
t.classevnet += new Teacher.deletype(s3.Record);
t.start();
Console.ReadKey();
}
}
}