public class greetmanager
{
public delegate void greetdelegate(string name);
public event greetdelegate dele1;
public void greetpeople(string name)
{
dele1(name);
}
private void nihao(string name)
{
Console.WriteLine(name + "早上好啊!");
}
}
在reflector 中查看代码
在c#中声明一个事件,实际生成的代码是一个private字段和 两个 public方法 add,和remove 既+=,和-=
不管事件是不是声明为public,它总是被声明为private的字段,所以可以访问类的事件的注册方法却不能调用注册到事件的函数,因为事件本身被声明为一个私有字段
greetmanager mgm = new greetmanager();mgm.dele1 += Egreet;
mgm.dele1 += Cgreet;
是正确的,但
mgm.dele1("jenson");
就会产生编译错误.