Nik*_*sic 3 c# stack-overflow nested-class
public class Class1
{
public Class1()
{
prop = new Class2();
}
public Class2 prop { get; set; }
public class Class2
{
public Class2()
{
this.prop2 = "nikola";
}
public string prop2 { get { return prop2; } set { prop2 = EditString(value); } }
public string EditString(string str)
{
str += " plavsic";
return str;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码,我有问题.当我尝试初始化类型为Class1的对象时,它会抛出StackOverflowException错误.我究竟做错了什么?
你的财产正在自行设定.
prop2 = ...属性setter中的行调用属性setter,它再次调用自身,再次调用自身,再次调用自身,再次调用自身,再次调用自身,再次调用自身,再次调用自身,再调用自身,它再次自我调用,它再次调用自身,它再次调用自身,再次调用自身,再次调用自身,再次调用自身,再次调用自身,再次调用自身,再调用自身,再调用自身,再次自称...
除了你从不称呼它之外,getter做同样的事情.
您需要为要获取和设置的属性创建一个支持字段.
例如:
private string prop2; //Create a backing field
public string Prop2 {
get { return prop2; }
set { prop2 = EditString(value); }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |