我再次选择了 C#,在长期使用 Java 后回来,正如您所料,我对属性非常感兴趣(哦,Java 的负担),因此我开始对它们进行一些探索并提出了这个.
private static float Width {
get { return 0.012f; }
}
经过一番修改,我意识到这也行得通(lambda 表达式?)。
private static float Width => 0.012f;
现在请帮助这里的 Java 开发人员了解究竟有什么区别?前者可以做什么而后者不能做什么,反之亦然。
最佳答案
what is exactly the difference?
这两种方式都定义了一个 getter only 属性。后者只是使用 C# 6 的新特性 "Expression Bodied Members"。 ,特别是这些是“Expression Bodied Properties”,它允许您使用粗箭头语法并且仅仅是语法糖。
如果你看看 compiler generates 是什么,你会看到:
private static float Width
{
get
{
return 0.012f;
}
}
这与您的 getter only 声明相同。
这些也可以应用于单行方法:
public int Multiply(int x) => x * x;
关于C# - 常量属性是否等同于 lambda 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33824411/