Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 转换为表达式体似乎不起作用?_C#_Lambda - Fatal编程技术网

C# 转换为表达式体似乎不起作用?

C# 转换为表达式体似乎不起作用?,c#,lambda,C#,Lambda,我有以下代码: public bool IsUser { get { return false; } } 现在Resharper建议我把它写到: public bool UseBands => false; 然而,这并没有编译,我的编译器抱怨我应该添加一个“;” 更新 我在Visual Studio 2013更新4上使用Resharper 9时遇到过此问题。Resharper似乎在查看项目属性,它应该应用哪些建议规则。如果您遇到这个问题,那么可能正如Szer所提到的,您已经启用

我有以下代码:

public bool IsUser
{
    get { return false; }
}
现在Resharper建议我把它写到:

public bool UseBands => false;
然而,这并没有编译,我的编译器抱怨我应该添加一个“;”

更新

我在Visual Studio 2013更新4上使用Resharper 9时遇到过此问题。Resharper似乎在查看项目属性,它应该应用哪些建议规则。如果您遇到这个问题,那么可能正如Szer所提到的,您已经启用了C#6.0语言级别

要禁用它,只需在解决方案资源管理器中单击您的项目,然后将C语言级别设置为C 6.0以外的其他级别


PS:由于我对更改项目设置的知识有限,我不知道有一个函数可以设置这个。虽然我不记得改变过它(C语言级别)。感谢您的帮助。

根据MSDN,这是C#6功能之一。ReSharper9部分地支持它,并且您可能有点早就启用了它

引用MSDN:

表达式体函数成员允许方法、属性和其他 函数成员的类型,使其主体改为表达式 语句块,就像lambda表达式一样

方法以及用户定义的运算符和转换 使用“lambda箭头”的表达式体:

public Point Move(int dx, int dy) => new Point(x + dx, y + dy); 
public static Complex operator +(Complex a, Complex b) => a.Add(b); 
public static implicit operator string(Person p) => "\{p.First} \{p.Last}";
效果与方法具有块体时完全相同 使用一个返回语句

对于void返回方法和任务返回异步方法 箭头语法仍然适用,但箭头后面的表达式 必须是语句表达式(与lambdas的规则一样):

属性和索引器只能有getter和settersgetter 属性和索引器可以具有表达式体:

public string Name => First + " " + Last; 
public Customer this[long id] => store.LookupCustomer(id);
注意,没有get关键字:它是通过使用 表达式体语法


更多信息:

您正在使用的Resharper和Visual Studio版本是什么?我假设您已经为您的项目启用了C#6支持,因为这看起来像是一个vNext功能。您可能应该在问题中包含类似的信息。请展示一个简短但完整的程序来演示问题,包括完整的错误消息,以及您使用的Visual Studio的确切版本的详细信息。注意:Visual Studio 2015C#6.0和此语言功能可用。我知道这也是一个问题。我正在使用,并且我将我的网站升级为使用.NET4.6.1,但我仍然面临着错误。请帮忙。
public string Name => First + " " + Last; 
public Customer this[long id] => store.LookupCustomer(id);