我知道Java,通常会放入getter / setter方法。我对使用以下代码在C#中执行此操作感兴趣,但是它引发了异常。我究竟做错了什么?
呼叫码
c.firstName = "a";
物业代码
public String firstName; { get { return firstName; } set { firstName = value; } }
这是因为您要递归调用该属性-在中,set您要再次设置该属性,该属性会 无限期地 继续 下去, 直到您破坏堆栈。
set
您需要一个私有后备字段来保存值,例如
private string firstName; public string FirstName { get { return this.firstName; } set { this.firstName = value; } }
另外,如果您使用的是C#3.0,则可以使用自动属性,该属性会为您创建一个隐藏的后备字段,例如
public string FirstName { get; set; }