C#中的委托是什么?怎样使用?书上的我看不太明白呀,教我一下

来源:百度知道 编辑:UC知道 时间:2024/04/29 06:44:43

这个的确不好理解 说简单点 打个比方就好像按钮的click事件 我们(再.net中)写按钮的事件都事双击按钮 再后台就会自动生成一个按钮的click函数,然后我们就再这个函数里面写该按钮要作的事。其实这就是个委托加事件,委托起的作用就事再把这个事件个这个click函数联系起来。再asp.net中我们会看到这样的例子
this.Button1.Click += new System.EventHandler(this.Button1_Click);这个就是委托。至于具体使用方法 这个不好说 你自己去琢磨。关键是要理解委托能作什么

C#的委托有点类似以前的函数指针,不过委托是类型安全的。
<br>
<br>比如C语言中的函数指针声明是这样的:
<br>数据类型(*指针变量名)(参数列表)。
<br>比如你申明一个函数指针如下:int(*p)(int, int);
<br>那你下次只需把一个符合这种申明的函数传给它,如果有一个函数实现叫int Max(int x, int y); 则你可以对上面的指针赋值p = Max;然后通过p(1,2)的调用来比较1和2的大小,相当于调用Max(1,2);
<br>
<br>可以说C#的委托完成的是差不多的功能。就是多了一个类型安全,不会产生指针锁带来的一些危害,如越界啦,非法访问内存啦。
<br>用代理实现上面例子如下:
<br>public delegate int P(int x, int y); // 创建代理
<br>P _maxD = new P(Max); // 传函数
<br>if (_maxD != null) _maxD(1,2); // 调用
<br>
<br>这是基本的概念,代理还有很多其他方面的应用,如作为回调方法,事件,委托链。