1.最直接的,代码简洁些
2.C#3.0的语法LINQ依赖于此。http://www.cnblogs.com/solo/archive/2008/04/24/1168981.html
我个人的很浅的理解
2.C#3.0的语法LINQ依赖于此。http://www.cnblogs.com/solo/archive/2008/04/24/1168981.html
我个人的很浅的理解
解决方案 »
- ilist conatins匹配不到结果
- 问一下C#里的正则和js里的正则,到底有哪些不同,详细一点
- 编译错误
- 一个典型的问题,可惜小弟太笨不会,忘各位大哥帮助,谢谢!
- SOCKET问题,我想实现给每个连接都发送信息。
- Web 系统中采用FrameSet,如何在页面间传数据
- 调用动态库出现问题,PChar类型的值怎么转换到C#中???
- 谁给我一个数据库手工建立一个索引的思路把。
- 救急!如何在dos环境下编译生成一个包含很多页面的web项目?
- ”automation服务器不能创建对象“错误提示怎样解决
- httprequest取网页数据
- vs2005 c#利用DirectXSDK做录音程序,要同时录多个音频源,为什么在分配了14快缓冲区之后不能在获得新的缓冲区了????
函数的代码就位于使用它的地方,这样程序员就不用到处寻找这些只会使用一次的小函数代码了。
这种函数显然是与它所传递到的函数相关的,因此它显然与使用这个上下文的其他程序员也是有关的。如果这些只使用一次的函数都是与调用函数单独编写的,而后来调用函数被删除了,那么显然这些只使用一次的函数也就需要删除了。 参考:
http://www.ibm.com/developerworks/cn/linux/l-highfunc.html
class Program
{
public static void Main()
{
Action a = Test(1);
a();
a();
a();
}
public static Action Test(int a)
{
return delegate()
{
Console.WriteLine(++a);
};
}
}
参数a被封到了委托里,但是在推出Test函数后生命周期并没有完。闭包在有的时候是非常有用的。比如你一个窗体里面多个用户控件是动态加载的,用户控件里的函数又不都一样,就可以通过传参来生成闭包调用。
还可以就是做curry化
Func<int, int, int> func = i => i + 1;
Func<int, int> curry = func.Curry(1);
curry(2);public static Func<P2, R> Curry<P1, P2, R>(this Func<P1, P2, R> func, P1 arg0)
{
return func.Curry()(arg0);
}
==========================================================================================
为什么Lambda不行,别忽悠人好吗public delegate int TestD(int a);
class Program8
{
public static void Main()
{
Testdelegate(Test, 1);
Testdelegate(i => i + 1, 1);
}
public static int Test(int a)
{
return a;
}
public static void Testdelegate(TestD d, int a)
{
Console.WriteLine(d(a));
}
}
==============================================
请你举个例子
==============================================
我Lambda表达式学的不好,像您请教Lambda比匿名委托差在哪了。
请举例子,你这解释没有说服力。我就问这句“可以将匿名方法转换为带有各种签名的委托..对于Lambda表达式来说却是不可能的”
不明白你为什么那么狂
==================================================================================================
那就请你举一个正确的例子