如何使Visual Studio 2021代码兼容VS2013/.NET Framework 4.0?
适配Visual Studio 2013的代码修改方案
你遇到的是C# 6.0新增的表达式体成员语法,Visual Studio 2013自带的编译器仅支持到C# 5.0,所以无法识别这类语法。无需升级.NET Framework 4.0,只需将代码转换为C# 5兼容的传统属性写法即可,具体修改如下:
1. 只读属性(CanRead/CanSeek/Length/CanWrite)
原C# 6语法:
public override bool CanRead => _fileStream.CanRead; public override bool CanSeek => _fileStream.CanSeek; public override long Length => _fileStream.Length; public override bool CanWrite => false;
修改为VS2013兼容的写法:
public override bool CanRead { get { return _fileStream.CanRead; } } public override bool CanSeek { get { return _fileStream.CanSeek; } } public override long Length { get { return _fileStream.Length; } } public override bool CanWrite { get { return false; } }
2. 带读写访问器的Position属性
原C# 6语法:
public override long Position { get => _fileStream.Position; set => _fileStream.Position = value; }
修改为VS2013兼容的写法:
public override long Position { get { return _fileStream.Position; } set { _fileStream.Position = value; } }
关键说明
- 这种修改完全保留原代码逻辑,仅替换语法形式,Visual Studio 2013可正常编译,无需改动项目目标框架。
- 你之前直接移除
=>的方式错误,因为基类的属性需要显式实现get(或set)访问器才能完成重写,仅保留属性定义会导致编译器无法识别重写关系。
内容的提问来源于stack exchange,提问作者TrojanNemo
相关产品推荐
相关产品推荐

