模棱两可的错误“;预期”"unexpected end of declaration"
Ambiguous errors "; expected" "unexpected end of declaration"
我的项目中有以下代码。出于本次交流的目的,其中还有其他代码可以注释掉。
namespace Project.HttpHandlers
{
public class Web : IHttpHandler
{
/// <summary>
/// Gets a value indicating whether another request can use the
/// <see cref="T:System.Web.IHttpHandler"/> instance.
/// </summary>
/// <returns>
/// true if the <see cref="T:System.Web.IHttpHandler"/> instance
/// is reusable; otherwise, false.
/// </returns>
public bool IsReusable => false;
}
}
Visual Studio 在 "public bool IsReusable => false;" 行上抛出一个错误,指出“;预期”。
当突出显示 => 运算符上的智能感知错误时,我得到 "unexpected end of declaration"。
如果我将其更改为 "public bool IsReusable = false;",错误就会消失。我不完全了解这一行的功能以及为什么那里有一个 lambda 运算符,所以我不想这样做。我知道它可以在同事的机器上编译,我看到它在网络上的其他地方被引用。
我似乎在 Visual Studio 中缺少参考或其他内容,但我找不到它。
这是 expression bodied members 的 C# 6 语法。
< C# 6 的语法:
private readonly bool _isReusable = false;
public bool IsReusable
{
get {return _isReusable; }
}
编辑:根据 Scott Chamberlain 的评论更正。
您的同事似乎使用 Visual Studio 2015 而您使用 Visual Studio 2013 或更早版本来编译项目。
如果您不想升级您的 VS 版本,您可以将 lambda 表达式替换为
public bool IsReusable { get { return false; } }
没有任何副作用。
该行定义的 属性 总是 returns 错误。它在功能上等同于 public bool IsReusable {get {return false;} }
.
在定义一个属性或调用方法时使用它expression-bodied member. Since it's a new feature with C# 6.0, you have to make sure you are targeting 6.0 or it won't compile. VS2015 defaults to 6.0, but to use it in 2013 you have to install it separately。你的同事要么已经这样做了,要么正在使用 VS2015。
我的项目中有以下代码。出于本次交流的目的,其中还有其他代码可以注释掉。
namespace Project.HttpHandlers
{
public class Web : IHttpHandler
{
/// <summary>
/// Gets a value indicating whether another request can use the
/// <see cref="T:System.Web.IHttpHandler"/> instance.
/// </summary>
/// <returns>
/// true if the <see cref="T:System.Web.IHttpHandler"/> instance
/// is reusable; otherwise, false.
/// </returns>
public bool IsReusable => false;
}
}
Visual Studio 在 "public bool IsReusable => false;" 行上抛出一个错误,指出“;预期”。
当突出显示 => 运算符上的智能感知错误时,我得到 "unexpected end of declaration"。
如果我将其更改为 "public bool IsReusable = false;",错误就会消失。我不完全了解这一行的功能以及为什么那里有一个 lambda 运算符,所以我不想这样做。我知道它可以在同事的机器上编译,我看到它在网络上的其他地方被引用。
我似乎在 Visual Studio 中缺少参考或其他内容,但我找不到它。
这是 expression bodied members 的 C# 6 语法。
< C# 6 的语法:
private readonly bool _isReusable = false;
public bool IsReusable
{
get {return _isReusable; }
}
编辑:根据 Scott Chamberlain 的评论更正。
您的同事似乎使用 Visual Studio 2015 而您使用 Visual Studio 2013 或更早版本来编译项目。
如果您不想升级您的 VS 版本,您可以将 lambda 表达式替换为
public bool IsReusable { get { return false; } }
没有任何副作用。
该行定义的 属性 总是 returns 错误。它在功能上等同于 public bool IsReusable {get {return false;} }
.
在定义一个属性或调用方法时使用它expression-bodied member. Since it's a new feature with C# 6.0, you have to make sure you are targeting 6.0 or it won't compile. VS2015 defaults to 6.0, but to use it in 2013 you have to install it separately。你的同事要么已经这样做了,要么正在使用 VS2015。