当前位置:  开发笔记 > 编程语言 > 正文

试图重现"必须声明一个正文"编译器错误

如何解决《试图重现"必须声明一个正文"编译器错误》经验,为你挑选了1个好方法。

我正在尝试使用网站中给出的确切代码重现C#编译器错误CS0840:

class Test36
{
    public int myProp { get; } // CS0840

    // to create a read-only property
    // try the following line instead
    public int myProp2 { get; private set; }

}

public Form1()
{
    InitializeComponent();

    Test36 test = new Test36();
}

我使用Visual Studio Community 2015在.NET 4.0上运行它.令人惊讶的是,我无法重现它.编译器不会抛出任何错误:

在此输入图像描述

为什么编译器没有抛出任何错误?



1> Jon Skeet..:

您正在使用实现C#6的Visual Studio 2015.您针对.NET 4的事实无关紧要 - 大多数C#6语言功能根本不依赖于框架功能.您正在使用的C#6代码可以轻松编译,而无需参考任何现代CLR或框架功能 - 如果语言设计者决定:)它可以与.NET 1.0一起使用:)

您需要将语言级别设置为C#5才能在此处查看错误.在项目属性/构建/高级对话框中执行此操作:

高级构建属性对话框

然后你会收到这个错误:

错误CS8026:功能'只读自动实现的属性'在C#5中不可用.请使用语言版本6或更高版本.

不可否认,这不是您真正想要看到的错误 - 我认为您需要使用早期版本的编译器才能获得确切的错误.


@Donatolo:它真的,真的不应该 - 而且它不在我的安装上.你能用你的解决方案给我发一个zip文件吗?我的地址在我的个人资料中.
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有