这段代码是什么意思?
public bool property => method();
答案 0 :(得分:48)
这是一个表达式 - 身体属性,这是C#6中引入的计算属性的新语法,它允许您以与创建lambda表达式相同的方式创建计算属性。此语法等同于
public bool property {
get {
return method();
}
}
类似的语法也适用于方法:
public int TwoTimes(int number) => 2 * number;
答案 1 :(得分:10)
这是一个表达身体的财产。例如,请参阅MSDN。 这只是
的简写public bool property
{
get
{
return method();
}
}
表达身体功能也是可能的:
public override string ToString() => string.Format("{0}, {1}", First, Second);
答案 2 :(得分:9)
正如一些人提到的,这是第一个带到C#6的新功能,他们在C# 7.0中扩展了它的用法以将它与getter和setter一起使用,你也可以使用这样的方法使用表达式bodied语法:
static bool TheUgly(int a, int b)
{
if (a > b)
return true;
else
return false;
}
static bool TheNormal(int a, int b)
{
return a > b;
}
static bool TheShort(int a, int b) => a > b; //beautiful, isn't it?
答案 3 :(得分:5)
=>
是expression body
。基本上是一种更简洁,更简洁的方式来编写只有getter
的属性。
public bool MyProperty {
get{
return myMethod();
}
}
翻译为
public bool MyProperty => myMethod();
它更简单易读,但您只能使用C#6和here中的此运算符,您将找到有关表达体的特定文档。
答案 4 :(得分:3)
这是表达简化的表达方式。
public string Text =>
$"{TimeStamp}: {Process} - {Config} ({User})";
答案 5 :(得分:-4)
这是一个表达身体的财产。它可以用作属性getter或方法声明的简化。 从C#7开始,它也扩展到其他成员类型,如构造函数,终结器,属性设置器和索引器。
查看MSDN文档以获取更多信息。
"表达式正文定义允许您以非常简洁,可读的形式提供成员的实现。只要任何受支持的成员(例如方法或属性)的逻辑由单个表达式组成,就可以使用表达式主体定义。"