C#6.0=>;操作人员

C#6.0=>;操作人员,c#,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

我正在使用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?

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

public Log Log => _log;
相等于

public Log Log { get { return _log; } }

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

这是一个较短的版本,用于编写只读属性

public Log Log => _log;
相等于

public Log Log { get { return _log; } }

但是我知道没有办法在旧版本中使用此功能。

问题是Visual Studio 2013不支持C#6.0。 用一种更老的方式转换它,就像前面的答案一样

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

问题是Visual Studio 2013不支持C#6.0。 用一种更老的方式转换它,就像前面的答案一样

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

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

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

public int TwoTimes(int number) => 2 * number;
:VS 2015引入了C#6.0。您不能将其与早期版本一起使用


Ref

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

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

public int TwoTimes(int number) => 2 * number;
:VS 2015引入了C#6.0。您不能将其与早期版本一起使用


Ref

否,升级您的VS版本。VS 2015引入了C#6.0。在VS 2013中无法使用它。或者将其替换为
public Log Log{get;private set;}
。Visual Studio 2015引入了c#6,因此您只能在VS 15或更高版本中使用主体表达式否,升级您的VS版本。c#6.0是在VS 2015中引入的。在VS 2013中无法使用它。或者将其替换为
公共日志日志{get;private set;}
。Visual Studio 2015引入了.c#6,因此您只能在VS 15或更高版本中使用主体表达式