我了解 java 并且通常会放入 getter/setter 方法。我有兴趣使用以下代码在 C# 中执行此操作,但它会引发 StackOverflow 异常。我究竟做错了什么?
调用代码
c.firstName = "a";
财产代码
public String firstName;
{
get
{
return firstName;
}
set
{
firstName = value;
}
}
这是因为你递归地调用该属性 - 在set
您正在再次设置该属性,这将继续无限期直到你炸毁堆栈。
您需要一个私有支持字段来保存该值,例如
private string firstName;
public string FirstName
{
get
{
return this.firstName;
}
set
{
this.firstName = value;
}
}
或者,如果您使用的是 C# 3.0,则可以使用自动属性,它会为您创建一个隐藏的支持字段,例如
public string FirstName { get; set; }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)