当前位置: 首页 > 最新文章 > 正文

浅谈C#委托的用法-delegate

通俗来讲就是“函数的模板原型”。三、委托的使用用delegate声明一个委托委托实例化调用 public class DelegateClass { public delegate void DelegateTest; //1、声明一个委托 public static void Test() { DelegateTest method = new DelegateTest; //2、实例化委托

admin

通俗来讲就是“函数的模板原型”。三、委托的使用用delegate声明一个委托委托实例化调用 public class DelegateClass { public delegate void DelegateTest; //1、声明一个委托 public static void Test() { DelegateTest method = new DelegateTest; //2、实例化委托 //DelegateTest method1 = Plus; //实例化委托的另一种等价写法 method.Invoke; //3、调用 //method1; //调用的另一种等价写法 } private static void Plus { Console.WriteLine; } }四、委托的意义1、没有委托就没有异步2、解耦3、高效扩展public class CallStudent { //方法1 public static void CallStudentA { Console.WriteLine;

一、委托的概念


委托和类一样是一种用户自定义类型,它存储的就是一系列具有相同签名和返回类型的方法的地址,调用委托的时候,它所包含的所有方法都会被执行。


借用百度上的一句话概括:委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,


可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。


二、委托的声明


与对应的方法具有相同的参数类型、参数个数、返回值。通俗来讲就是“函数的模板原型”。


三、委托的使用


用delegate声明一个委托

委托实例化

调用

public class DelegateClass

{

public delegate void DelegateTest(int a, int b); //1、声明一个委托

public static void Test()

{

DelegateTest method = new DelegateTest(Plus); //2、实例化委托

//DelegateTest method1 = Plus; //实例化委托的另一种等价写法

method.Invoke(1, 2); //3、调用

//method1(3, 4); //调用的另一种等价写法

}

private static void Plus(int a, int b)

{

Console.WriteLine("a={0} b={1}", a, b);

}

}


四、委托的意义


1、没有委托就没有异步


2、解耦


3、高效扩展


public class CallStudent

{

//方法1

public static void CallStudentA(string name)

{

Console.WriteLine("{0}", name);


上一篇: 主板BIOS中的USB设置和启动项顺序设置以及还原出厂设置 下一篇:期货(Futures)
返回顶部