ASP.NET C#类/结构体/接口成员声明中Invalid token '='错误求助
解决Invalid token '=' in class, struct, or interface member declaration错误
这个错误的根源很明确:你用的C#版本不支持自动属性初始化器——就是你直接给public string Encoding { get; set; } = "Text";这种属性赋值的写法,这是C# 6.0才新增的语法特性。如果你的项目用的是C# 5.0或更早版本,编译器就会抛出这个错误。
给你两个可行的解决办法:
方法一:升级项目的C#语言版本
如果你的开发环境支持(比如用的是Visual Studio 2015及以上版本),可以直接升级C#版本:
- 右键你的ASP.NET项目,选择「属性」
- 切换到「生成」标签页,点击右下角的「高级」按钮
- 在弹出的「高级生成设置」窗口里,找到「语言版本」,选择「C# 6」或者更高的版本(比如最新的C# 11)
- 保存设置后重新编译项目,这个错误就会消失
方法二:改用兼容旧版本的属性写法
如果没法升级C#版本,就换成传统的属性实现方式,有两种选择:
1. 用私有字段+属性的传统写法
把初始化逻辑放到私有字段上:
// 用私有字段存储值,初始化赋值 private string _encoding = "Text"; public string Encoding { get { return _encoding; } set { _encoding = value; } } private string _category = "Free"; public string Category { get { return _category; } set { _category = value; } }
2. 在构造函数里初始化属性
把初始化代码放到类的构造函数中:
public class YourClass // 替换成你的实际类名 { public string Encoding { get; set; } public string Category { get; set; } // 构造函数中初始化属性 public YourClass() { Encoding = "Text"; Category = "Free"; } }
另外补充一句:如果你用的是.NET Framework 4.5及更早版本,默认的C#版本可能低于6.0,这种情况下除了升级C#版本,也可以考虑升级.NET Framework到4.6及以上,它默认支持C# 6.0的特性。
内容的提问来源于stack exchange,提问作者Seth Hong
相关产品推荐
相关产品推荐

