我很想知道
如果你的答案是否定的,请解释
为什么微软已接受它,但其他人不接受?所以不应该有用吗?
由于
答案 0 :(得分:4)
什么是C#代理?来自MSDN Tutorial: C#中的委托类似于C或C ++中的函数指针。使用委托允许程序员将对方法的引用封装在委托对象中。
.CLR对一流功能的历史支持。即能够像其他任何值一样使用函数传递。来自.NET 3.5 Func<>为此目的添加到C#中。
Java可以通过匿名内部类来模拟这个。 Scala具有几乎优秀的一流功能支持:
val f = (x:Int) => x + 1
Groovy具有一流的功能:
square = { it * it }
为了公平起见,CLR委托的工作速度比上面列出的JVM方法要快一些。 这是因为JVM本身缺乏对第一类函数的支持,将它们带回来的唯一方法是模拟这个功能。
为什么微软已接受它,但其他人不接受?
这就是历史上展开的事情。
所以不应该有用吗?
第一类函数在functional programming中非常有用。