什么" =>"运算符是指C#中的属性?

时间:2016-10-27 10:36:20

标签: c# c#-6.0

这段代码是什么意思?

public bool property => method();

6 个答案:

答案 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})";

参考; https://msdn.microsoft.com/en-us/magazine/dn802602.aspx

答案 5 :(得分:-4)

这是一个表达身体的财产。它可以用作属性getter或方法声明的简化。 从C#7开始,它也扩展到其他成员类型,如构造函数,终结器,属性设置器和索引器。

查看MSDN文档以获取更多信息。

"表达式正文定义允许您以非常简洁,可读的形式提供成员的实现。只要任何受支持的成员(例如方法或属性)的逻辑由单个表达式组成,就可以使用表达式主体定义。"