C# 委托 ゞ 浴缸里的玫瑰 2022-04-08 12:15 259阅读 0赞 ### 一、什么是委托? ### 初次理解这么抽象的概念确实有点挺难的,如果学过C语言,可能知道C语言里可以把一个方法当做参数来传递,委托大概类似也是这样一个原理。 想象一下,在一个类里面定义一个变量n,这个变量的类型是一个特殊的类型——委托,然后在其它地方通过参数传递,对这个变量n进行了赋值,并且这个“委托”类型变量n是可以当做方法来使用的,就像这样: n(); 注意:委托是一个引用类型,是一个类。那么定义委托就要定义和类一个级别。什么意思呢!就是类里面可以有其它的类型作为该类的属性,比如定义了一个类A,类A里面定义了int a,bool b,类c 作为三个属性,它们之间是可以“嵌套”使用的。delegate关键字和Class关键字是一个级别的,但委托有比较特殊,像是一个可以有返回值的类,是类却可以当做方法来使用。所以在定义的时候不仅要有delegate关键字,也要有返回类型。 ### 二、下面来看如何使用委托: ### ###### 1、定义 ###### 它和类是同级别的,可以有参数 //定义一个类 public Class A{} //定义一个委托 public delegate void MyDel(); ##### 2、赋值 ##### 需要对委托进行实例化,就像一个类一样,并且实例化的时候就要给它传递一个方法,不用带括号、带参数,它会自己识别 MyDel myDel=new MyDel(方法名); ##### 3、调用 ##### myDel(); ### 三、下面举个例子来在实战中使用委托: ### 我们实现,Form2窗体里的按钮调用Form1窗体里的按钮。 1、新建一个类,将默认的类删掉(或注释),定义委托 //class Class1 { } public delegate void MyDel(object sender, EventArgs e); //解释一下委托里面的参数,委托是一个安全类型,这个里面的参数是从 button点击事件的参数一致,因为这个委托要调用点击事件 2、在Form2窗体中 //定义一个委托,作为Form2的一个属性 public MyDel myDel; private void button1_Click(object sender, EventArgs e) { //调用委托 myDel(sender,e); } 3、在Form1窗体中 private void button1_Click(object sender, EventArgs e) { //实例化一个委托,并“挂”上一个button2的点击方法 MyDel myDel = new MyDel(button2_Click); //实例化Form2, Form2 f2 = new Form2(); //给Form2里的委托赋值 f2.myDel = myDel; f2.ShowDialog(); } private void button2_Click(object sender, EventArgs e) { label1.Text = "button2被点击了!!!"; } 效果展示: ![在这里插入图片描述][20181213211221797.gif] 委托还是很好学的,委托也可以“挂”多个方法,这些方法会被依次调用。比如: public delegate void MyShow(); public void f1() { MessageBox.Show("我是f1方法"); } public void f2() { MessageBox.Show("我是f2方法"); } private void button1_Click(object sender, EventArgs e) { MyShow myShow = new MyShow(f1); myShow += f2; myShow(); } ![在这里插入图片描述][20181213211848441.gif] “一学编程深如海” 哈哈哈,大家一起学习还是挺有意思的。知道“委托”这个词很久了,“忍”了很久都没敢学,今天给思莲解决跨窗体调用方法时,我觉得有必要学习一下了,跟说思莲我也不会委托,怎么办,那就现学一下吧! [20181213211221797.gif]: /images/20220405/d2abe94917be450fbc1e4cfaad2634dd.png [20181213211848441.gif]: /images/20220405/342c9d03649949c6a53b4e1793d49a58.png
相关 C#委托 一、什么是委托 委托是一种类型,就跟int,double,struct,string,class一样。它定义了一个函数的类型。现在,我们有一个方法,我们希望它的参数是某个 川长思鸟来/ 2024年02月17日 22:49/ 0 赞/ 47 阅读
相关 C#——委托 C\——委托 委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。 在实例化委托时,你可以将其实例与任何具有兼容签名和返回类型的方法相关联。 你可以通过委托 冷不防/ 2023年01月03日 04:22/ 0 赞/ 220 阅读
相关 C#之委托 1.委托 关键字 delegate 声明(通俗了解,结合面向生活的思想---委托就是委托他人,是一个具体的命令或者指派、选择) 定义方法: pu 阳光穿透心脏的1/2处/ 2022年09月24日 05:22/ 0 赞/ 145 阅读
相关 C#委托 委托: 委托定义了方法的类型,使得方法可以作为另一个方法的参数来进行传递,这样可以在程序中避免使用大量的判断语句,同时使程序具有更好的扩展性。 可以将多个方法绑定到同一个委 矫情吗;*/ 2022年09月17日 07:28/ 0 赞/ 179 阅读
相关 c#委托 首先创建个控制台应用程序在Program下创建一个无参数无返回值的静态方法,可以输出一句话 static void Text() { Cons 迈不过友情╰/ 2022年04月16日 06:15/ 0 赞/ 242 阅读
相关 C# 委托 一、什么是委托? 初次理解这么抽象的概念确实有点挺难的,如果学过C语言,可能知道C语言里可以把一个方法当做参数来传递,委托大概类似也是这样一个原理。 想象一下,在一个 ゞ 浴缸里的玫瑰/ 2022年04月08日 12:15/ 0 赞/ 260 阅读
相关 C# 委托 什么是委托? 委托和事件这两个概念是完全配合的。委托仅仅是函数指针,那就是说,它能够引用函数,通过传递地址的机制完成。委托是一个类,当你对它实例化时,要提供一个引 野性酷女/ 2022年02月16日 13:51/ 0 赞/ 263 阅读
相关 C# 委托 委托 作用:将多个参数相同的方法,进行委托统一调用,将参数和调用方法传递给委托,由委托调用。 好处:可以将多个方法内相同的部分提取出来,根据参数和方法参数,调用需要的 ゝ一世哀愁。/ 2021年10月14日 02:00/ 0 赞/ 363 阅读
相关 C# 委托 什么是委托? 委托是寻址方法的.NET版本,使用委托可以将方法作为参数进行传递。委托是一种特殊类型的对象,其特殊之处在于委托中包含的是一个或多个方法的地址,而不是数据。委 谁践踏了优雅/ 2021年06月24日 16:10/ 0 赞/ 479 阅读
相关 C#委托使用 委托是啥 委托是一个类,它定义了方法的类型,说白了就是将一个方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法。 可以避免在程序中大量使用If-Else 朱雀/ 2021年06月24日 16:00/ 0 赞/ 517 阅读
还没有评论,来说两句吧...