是否有等效于 Java 的 :: 表示法来指代成员函数?

  • 本文关键字:成员 函数 表示 Java 是否 c#
  • 更新时间 :
  • 英文 :


在java中我可以写:

Comparator.comparing(Match::getDate)
.thenComparing(Match::hashCode)
.thenComparing ...

而不是必须写

Comparator.comparing(m -> m.getDate())
    .thenComparing(m -> m.hashCode())
    .thenComparing ...

C#中是否有类似的速记,将成员函数称为lambda表达式?

在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();
    }

最新更新