委托从入门到入土
1、What is Delegate?
什么是委托?据《C#图解教程》定义,委托是一种持有一个或者多个方法的对象,而查看委托的类型,我们会发现委托实质上就是一个类,所以委托是与Program类同一级别,定义时要注意不要在类内部定义了。
2、委托的定义
在了解委托的具体作用前,我们先来看看如何创建一个委托,以及如何使用一个委托。
// 委托的定义delegate void MyDel(int value);class Program{static void Main(string[] args){}}
如上代码,委托虽然是一个类,但是它的定义和方法的定义很相似,有返回类型(void),有传参(value),但同时也没有方法主体。上述委托表示MyDel类型的委托,只会接受不返回值,且传参仅有一个int类型参数的方法。
3、委托简单的使用
// 委托的定义delegate void MyDel(int value);class Program{static void Main(string[] args){int value = 20;MyDel myDel1 = new MyDel(GetBigValue);MyDel myDel2 = new MyDel(GetSmallValue);if (value > 50)myDel1.Invoke(value); // myDel1(value)也可elsemyDel2.Invoke(value); // myDel2(value)也可}public static void GetBigValue(int value){ Console.WriteLine($"{value} is big");}public static void GetSmallValue(int value){Console.WriteLine($"{value} is small");}}
总的来说,就是定义一个委托,管理多个方法,根据判断调用对应的方法即可。