在Java中,我可以写:
Comparator.comparing(Match::getDate)
.thenComparing(Match::hashCode)
.thenComparing ...
无需编写
Comparator.comparing(m -> m.getDate())
.thenComparing(m -> m.hashCode())
.thenComparing ...
C#中是否有类似的速记将成员函数称为lambda表达式?
答案 0 :(得分:2)
在Java中,::
表示法称为方法引用。在C#中没有直接等效的方法引用,但是与C#中的方法引用最接近的表示形式是成员组,这使您可以简化一些满足某些要求的lambda表达式。
这是一本好书:https://www.jetbrains.com/help/resharper/ConvertClosureToMethodGroup.html
没有方法组:
private static int[] ParseInt(string s)
{
var t = ParseString(s);
var i = t.Select(x => int.Parse(x));
return i.ToArray();
}
使用方法组:
private static int[] ParseInt(string s)
{
var t = ParseString(s);
var i = t.Select(int.Parse);
return i.ToArray();
}