using System;namespace DelegateDemo{ class Program { private delegate int Cacu(string str); static void Main(string[] args) { //1 Cacu cacu = new Cacu(CacuInstance); Console.WriteLine(cacu("Hello,Wrold")); //2 Cacu cacu1 = new Cacu(delegate(string str) { return str.Length; }); Console.WriteLine(cacu1("Hello,Wrold")); //3 Cacu cacu2 = new Cacu((str) => { return str.Length; }); Console.WriteLine(cacu2("Hello,Wrold")); } static int CacuInstance(string str) { return str.Length; } }}
- 4楼???
- 我对委托始终理解起来很困难,有没有什么简单办法让借鉴一下。。。
- Re: 弎吩锺熱℃
- @???,学过C++么?我觉得委托跟C++的函数指针很相似。
- Re: zhoumy
- @???,其实可以这样理解:,委托也是一种类型,只是这种类型在实例化的时候需要传入一个方法作为参数。,,当一个委托被实例化为委托对象后,实际上这个委托对象就代表了一个方法组。注意,是方法组,而不仅仅是一个方法。这也是委托和C++中的函数指针比较不同的一点。,就以上面的代码为例:,Cacu cacu += CacuInstance;,Cacu cacu += CacuInstance;,Cacu cacu += CacuInstance;,,当cacu这个委托实例被调用的时候,实际上会执行3次CacuInstance。
- 3楼???
- C++考了89,还不错,但是指针我能理解,这个理解起来咋就这么困难,你能具体的说说吗?已赞!!!
- 2楼???
- 上面第三个(str)=gt;{return str.lengt
- 1楼???
- 谢谢,现在貌似明白点了,呵呵