C#定义string类型属性时set访问器该用什么赋值?
修正方法
你的代码有两处需要调整:
- 首先是
Name属性的类型声明错误:私有字段_name为string类型,对应公开属性的类型不能写int,必须改为string,否则会触发类型不匹配的编译错误。 - set访问器的赋值逻辑和
Power属性完全一致:C#属性的set访问器中,value是固定的上下文关键字,代表外部给属性赋值时传入的值,直接将它赋值给对应私有字段即可。
修正后的代码:
private int _power; public int Power{ get{ return _power; } set{ _power = value; } } private string _name; public string Name{ get{ return _name; } set{ _name = value; } }
如果不需要在属性的get/set中加额外校验、处理逻辑,C# 3.0及以上版本可以直接用自动属性简化代码,不需要手动声明私有支撑字段,编译器会自动生成对应逻辑,写法如下:
public int Power { get; set; } public string Name { get; set; }
内容的提问来源于stack exchange,提问作者Tausif Alam
相关产品推荐
相关产品推荐

