C#委托 川长思鸟来 2024-02-17 22:49 63阅读 0赞 #### 一、什么是委托 #### 委托是一种类型,就跟int,double,struct,string,class一样。它定义了一个函数的类型。现在,我们有一个方法,我们希望它的参数是某个函数,如下所示。 class A { void public MyFuction(自定义函数,参数1,参数2) { 自定义函数(参数1,参数2) ;//内部逻辑,执行该函数 } } 我们希望把某个自定义的函数作为参数,传到这个方法里面执行,请问如何实现? 所以,定义一个函数类型,它就是委托,它代表我们定义的参数的类型 public delegate void MyCustomFunc(int a,int b); 现在,参数的类型就有了,我们传一个参数值进去,这个参数值就是某个函数名称。 具体的实例 public delegate void MyCustomFunc(int a, int b);//定义一种函数的参数类型 class A { public void MyFuction(MyCustomFunc function, int a, int b) { function(a, b);//内部逻辑 } } class B { public void Test(int a, int b)//符合该参数类型的函数 { Console.WriteLine(a + b); } } class DemoClass { static void Main(string[] args) { A a =new A(); B b =new B(); a.MyFuction(b.Test,5,6);//参数类型 MyCustomFunc,参数值 Test Console.ReadKey(); } } 仔细体会,把函数作为参数,传到这个方法里面。所以我们执行 MyFuction方法时,也会执行function这个我们指定的函数。 委托是面向对象的、类型安全,是一种引用类型。 #### **二、什么时候用委托** #### **这里你可以想一下,如果你要同时执行许多函数,这些函数同时有相同的参数,相同的返回值。** **比如:在ClassA中,有 public int test1 (string a, string b);** **ClassB中,有public int test2 (string a, string b)** **ClassC中,有 public int test3(string a, string b)** **ClassD中,有public int test4 (string a, string b)** 如何让这些函数同时执行? 你会这样写: ClassA A; classB B; classC C; ClassD D; A.test1(); B.test2(); C.test3(); D.test4(); **但委托** **pulic delegate int myDelegate(string a,string b);** **myDategate =** ClassA.test1; **myDategate +=** ClassB.test2; **myDategate +=** ClassC.test3; 这样你执行**myDategate** (string a,string b),所有函数都会执行
相关 C#委托 一、什么是委托 委托是一种类型,就跟int,double,struct,string,class一样。它定义了一个函数的类型。现在,我们有一个方法,我们希望它的参数是某个 川长思鸟来/ 2024年02月17日 22:49/ 0 赞/ 64 阅读
相关 C#——委托 C\——委托 委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。 在实例化委托时,你可以将其实例与任何具有兼容签名和返回类型的方法相关联。 你可以通过委托 冷不防/ 2023年01月03日 04:22/ 0 赞/ 240 阅读
相关 C#之委托 1.委托 关键字 delegate 声明(通俗了解,结合面向生活的思想---委托就是委托他人,是一个具体的命令或者指派、选择) 定义方法: pu 阳光穿透心脏的1/2处/ 2022年09月24日 05:22/ 0 赞/ 160 阅读
相关 C#委托 委托: 委托定义了方法的类型,使得方法可以作为另一个方法的参数来进行传递,这样可以在程序中避免使用大量的判断语句,同时使程序具有更好的扩展性。 可以将多个方法绑定到同一个委 矫情吗;*/ 2022年09月17日 07:28/ 0 赞/ 197 阅读
相关 c#委托 首先创建个控制台应用程序在Program下创建一个无参数无返回值的静态方法,可以输出一句话 static void Text() { Cons 迈不过友情╰/ 2022年04月16日 06:15/ 0 赞/ 258 阅读
相关 C# 委托 一、什么是委托? 初次理解这么抽象的概念确实有点挺难的,如果学过C语言,可能知道C语言里可以把一个方法当做参数来传递,委托大概类似也是这样一个原理。 想象一下,在一个 ゞ 浴缸里的玫瑰/ 2022年04月08日 12:15/ 0 赞/ 281 阅读
相关 C# 委托 什么是委托? 委托和事件这两个概念是完全配合的。委托仅仅是函数指针,那就是说,它能够引用函数,通过传递地址的机制完成。委托是一个类,当你对它实例化时,要提供一个引 野性酷女/ 2022年02月16日 13:51/ 0 赞/ 281 阅读
相关 C# 委托 委托 作用:将多个参数相同的方法,进行委托统一调用,将参数和调用方法传递给委托,由委托调用。 好处:可以将多个方法内相同的部分提取出来,根据参数和方法参数,调用需要的 ゝ一世哀愁。/ 2021年10月14日 02:00/ 0 赞/ 384 阅读
相关 C# 委托 什么是委托? 委托是寻址方法的.NET版本,使用委托可以将方法作为参数进行传递。委托是一种特殊类型的对象,其特殊之处在于委托中包含的是一个或多个方法的地址,而不是数据。委 谁践踏了优雅/ 2021年06月24日 16:10/ 0 赞/ 498 阅读
相关 C#委托使用 委托是啥 委托是一个类,它定义了方法的类型,说白了就是将一个方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法。 可以避免在程序中大量使用If-Else 朱雀/ 2021年06月24日 16:00/ 0 赞/ 539 阅读
还没有评论,来说两句吧...