public abstract DataTypeEnum DataType { get; set; } = DataTypeEnum.MASTER_DATA; c#种这行代码为什么编译不过去 怎么修改
时间: 2024-03-08 20:50:16 浏览: 53
C#数据类型转换
这行代码可能会出现编译错误的原因是在 C# 6.0 之前版本中,自动属性初始值设定项只能是常数表达式。而在 C# 6.0 之后,允许自动属性初始值设定项为可赋值的表达式。
所以,如果你的 C# 版本低于 6.0,你可以将初始值设定项修改为常数表达式,例如:
```csharp
public abstract DataTypeEnum DataType { get; set; } = DataTypeEnum.MASTER_DATA;
```
修改为:
```csharp
public abstract DataTypeEnum DataType { get; set; }
public MyClass()
{
DataType = DataTypeEnum.MASTER_DATA;
}
```
这里我们将初始值设定项移到了类的构造函数中,使用赋值语句为属性赋初始值,这样就可以避免编译错误了。
如果你的 C# 版本高于 6.0,也可以直接使用原来的代码,只需要将项目的目标框架版本升级至 .NET Framework 4.6 或更高版本,或者使用 Visual Studio 2015 或更高版本进行编译即可。
阅读全文