error CS1043: { or ; expected错误怎么理解?

clever101
博客专家认证
2020-08-11 04:57:26
有这样一个C#类,代码如下:


public class DBCurProject : MySqlLite2
{
private static DBCurProject m_pCurDB = null;
public static DBCurProject PCurDB { get => m_pCurDB; set => m_pCurDB = value; }

}


在VS 2015 (附带.NET Framework4)上编译出错,具体是 public static DBCurProject PCurDB { get => m_pCurDB; set => m_pCurDB = value; }这行代码出错,错误信息是:
error CS1043: Invalid accessor body =>', expecting;' or `{'

我同事使用vs2017编译则没问题。请问如何理解这个错误?
...全文
3782 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
github_36000833 2020-08-12
  • 打赏
  • 举报
回复
{ get => m_pCurDB; set => m_pCurDB = value; } 这种写法是C# 6.0开始支持的“Expression-bodied 函数成员”。 Visual Studio 2015的编译器不支持这种写法。 Visual Studio 2017或2019可以支持,Visual Studio 2015安装一些预览版,引进Roslyn编辑器也可以支持。 建议安装2019社区版,免费,项目也可以保持Framework 4。它是编译器功能,跟.net framework版本无关。 或者,Visual Studio 2015下,用旧语法写为:
public class DBCurProject : MySqlLite2
{
        private static DBCurProject m_pCurDB = null;
        public static DBCurProject PCurDB 
        {
                get { return m_pCurDB; }
                set { m_pCurDB = value; }
        }
}
Constructor_ 2020-08-12
  • 打赏
  • 举报
回复
引用 2 楼 github_36000833 的回复:
{ get => m_pCurDB; set => m_pCurDB = value; } 这种写法是C# 6.0开始支持的“Expression-bodied 函数成员”。 Visual Studio 2015的编译器不支持这种写法。 Visual Studio 2017或2019可以支持,Visual Studio 2015安装一些预览版,引进Roslyn编辑器也可以支持。 建议安装2019社区版,免费,项目也可以保持Framework 4。它是编译器功能,跟.net framework版本无关。 或者,Visual Studio 2015下,用旧语法写为:
public class DBCurProject : MySqlLite2
{
        private static DBCurProject m_pCurDB = null;
        public static DBCurProject PCurDB 
        {
                get { return m_pCurDB; }
                set { m_pCurDB = value; }
        }
}
稍微更正一下。在我印象里这是C#7的特性。 C# 6引入的expressi-bodied property只支持对readonly property省去大括号中accessor的定义,比如:
public decimal Profit => offer - cost
C# 7开始支持expression-bodied accessor.也就是帖子的这种语法。
ziqi0716 2020-08-12
  • 打赏
  • 举报
回复
1楼正解~,新版语法支持"=>"属性
正怒月神 2020-08-11
  • 打赏
  • 举报
回复
.net framework版本不对,不支持这个语法。 改成

public static DBCurProject PCurDB { get ;set;}

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧