C# 类声明中的令牌无效?

C# 类声明中的令牌无效?,c#,visual-studio,C#,Visual Studio,我的代码取自Fo Dicom开源库,代码没有编译,因为编译器抱怨有无效的令牌 /// <inheritdoc /> public bool IsEOF => _stream.Position >= _stream.Length; // 公共布尔IsEOF=>\u stream.Position>=\u stream.Length; 这段代码中的错误: 错误101类、结构或接口成员声明c:\Users\user\Desktop\New f

我的代码取自Fo Dicom开源库,代码没有编译,因为编译器抱怨有无效的令牌

        /// <inheritdoc />
        public bool IsEOF => _stream.Position >= _stream.Length;
//
公共布尔IsEOF=>\u stream.Position>=\u stream.Length;
这段代码中的错误:

错误101类、结构或接口成员声明c:\Users\user\Desktop\New folder\fo dicom development\dicom\IO\FileByteSource.cs 93 47 dicom.Desktop中的无效令牌“>=”无效

为什么会发生这种情况?

您需要c#7编译器来编译这种类型的成员声明


因为您使用的是VS 2013,所以您得到的是旧版本的c#编译器,它不知道这种语法,并且将无法在
=>
附近编译,因为编译器总是试图尽可能多地理解代码。如果您真的对下一个操作中报告错误的原因感兴趣,请抓取您最终实际使用的c版本规范,并找出它如何解释
public bool a=>b…

您没有显示导致错误的代码。以
结束语句并确保您的代码包含在类中。您是在C#6或更高版本下编译的吗?那么这就是问题所在。Visual Studio 2013使用C#5编译器,您正在尝试使用C#6功能。(我怀疑您是否真的在使用.NET 4.7.1。您可能已经安装了该版本,但这并不意味着您在项目中将其作为目标。VS2013更新可能会使该版本起作用,但不会更改您正在使用的编译器版本。)我很惊讶,在本例中,编译器可以使用
=>
,但不能使用
=