C#6.0 =>操作者

时间:2016-10-27 13:38:11

标签: c#

我正在使用visual studio 2013.我在github中找到了一个项目,该项目正在使用Visual Studio 2015.我正在尝试编译它但是使用vs2013时出现错误

  

无效令牌';'在类,结构或接口成员声明中

这里是代码:

private readonly Log _log;
public Log Log => _log; // What => Operator is doing ? Pointer ?

是的,=>C# [6.0]运算符的哪些新功能?并且有没有办法在vs2013中使用C#6.0?

3 个答案:

答案 0 :(得分:7)

写一个只读属性是一个较短的版本。

public Log Log => _log;

等于

public Log Log { get { return _log; } }

但我知道在旧版本中无法使用此功能。

答案 1 :(得分:2)

这是一个表达式身体属性,是C#6中引入的计算属性的新语法,它允许您以与创建lambda表达式相同的方式创建计算属性。所以:

public int TwoTimes(int number)
{
    return 2*number;
}

相当于

public int TwoTimes(int number) => 2 * number;

注意:VS 2015引入了C#6.0。您无法在早期版本中使用它。

参考What does "=>" operator mean in a property in C#?

答案 2 :(得分:1)

问题是Visual Studio 2013不支持C#6.0。 以较旧的方式转换它,就像之前的回答一样

private readonly Log _log;
public Log Log 
{
    get { return _log; }
}