using System;
namespace CSharpInDepth
{
//1.首先声明委托类型
delegate void StringProcessor ( string input );
class Person
{
string name;
public Person ( string name ) { this .name = name; }
//2.创建委托类型兼容的实例方法
public void Say(string message)
{
Console .WriteLine ( "{0} says: {1}" , name , message );
}
}
class Background
{
//3.创建委托类型兼容的静态方法
public static void Note(string note)
{
Console .WriteLine ( "{0}" , note );
}
}
class Program
{
static void Main ( string[] args )
{
Person jon = new Person ( "jon" );
Person tom = new Person ( "tom" );
//4.创建委托实例
StringProcessor jonsVoice,tomsVoice,background;
jonsVoice = new StringProcessor ( jon .Say );
tomsVoice = new StringProcessor ( tom .Say );
background = new StringProcessor ( Background .Note );
//5.调用委托
jonsVoice ( "hello,son" );
//这里使用了显示的Invoke方式,一般情况下,使用上面的简化形式就可以了
tomsVoice .Invoke ( "hello daddy" );
background ( "An airplane crashed" );
}
}
}
/*
个人认为,委托的要义如下:
* 不能仅仅由于你希望某事发生,就意味着你始终会在正确的时间和地点
* 出现,并且亲自使之发生。有的时候,你需要一些指令——将职责委托给别人
* C#中的委托和现实世界中的遗嘱一样,也是在恰当的时间执行一些列的操作。
* 如果代码想要执行操作,但不知操作细节,一般可用委托。
*/
C#之委托
最新推荐文章于 2024-04-23 20:22:58 发布