C#编译报错‘A get or set accessor expected’原因咨询
C#编译错误“A get or set accessor expected”原因解析
这个编译错误的核心原因是属性定义不符合C#语法规范,具体场景包括:
- 属性的大括号内未添加
get或set访问器:C#规定属性必须通过get(读取)或set(赋值)访问器来封装逻辑,只写空大括号{}会被编译器判定为语法错误。 - 混淆字段与属性的写法:字段直接定义(如
public string Name;),不需要大括号;而属性必须用大括号包裹访问器逻辑,如果给字段强行加上大括号,就会触发该错误。 - 属性大括号内写入了非访问器代码:比如在属性的
{}里直接写执行语句,而非get/set关键字开头的逻辑,也会导致编译器报错。
错误示例:
public class Person { public string Name {} // 缺少get/set访问器,触发错误 }
正确示例:
public class Person { // 自动实现属性(最简写法) public string Name { get; set; } // 带自定义逻辑的属性 private int _age; public int Age { get { return _age; } set { if(value >= 0) _age = value; } } }
内容的提问来源于stack exchange,提问作者Bui Truong An
相关产品推荐
相关产品推荐

