}
}
如果代表元只有这点功能它就没有什么太大的用处了,代表元还有一个非常有用
的功能就是定义复合代表元对象只有同样类型的代表元才能够复合起来 +能定
义复合代表元对象 -从一个复合代表元中去掉一个代表元对象
delegatevoidMyDelegate(strings);
publicclassMyClass
{
publicvoidSayHello(stringwho)
{
System.Console.WriteLine(who+"hello!");
}
publicvoidSayGoodBye(stringwho)
{
System.Console.WriteLine(who+"goodbye!");
}
}
publicclassTestMyClass
{
publicstaticvoidMain(string[]args)
{
MyClassmyClass1=newMyClass();
MyDelegatemyDelegate,myDelegate1;
myDelegate=newMyDelegate(myClass1.SayHello);
myDelegate1=newMyDelegate(myClass1.SayGoodBye);
myDelegate+=myDelegate1;
//这样调用 myDeletage 就相当于同时调用了 myClass1.SayHello 和
myClass1.SayGoodBye
myDelegate("love.net");
//执行结果输出 love.nethello!love.netgoodbye!
}
}
事件驱动是 windows 应用程序的重要特征 C#代表元就是用于产生事件,事件
就是用于在一个组件中监听这个组件的变化
下面再举一个简单的例子
//定义一个事件代理(代表元)
publicdelegatevoidEventHandler(stringstr);
//定义事件源类
classEventSource
{
//定义代表元作为事件源类的成员