这是我在我的代码属性:为什么我会在Class属性上得到这个“无限循环”?
public KPage Padre
{
get
{
if (k_oPagina.father != null)
{
this.Padre = new KPage((int)k_oPagina.father);
}
else
{
this.Padre = null;
}
return this.Padre;
}
set { }
}
但它说:
类型 'System.StackOverflowException' 未处理的异常发生在App_Code.rhj3qeaw.dll
为什么?我该如何解决它?
编辑
后正确的代码,这是我的实际代码:
private KPage PadreInterno;
public KPage Padre
{
get
{
if (PadreInterno == null)
{
if (paginaDB.father != null)
{
PadreInterno = new KPage((int)paginaDB.father);
}
else
{
PadreInterno= null;
}
}
return PadreInterno;
}
}
你怎么看待呢?
什么是'其他{PadreInterno = NULL; }在修正的代码中有用吗?无论如何,只有当'PadreInterno'为'null'时才调用该代码:'if(PadreInterno == null)'。像这样简化if(PadreInterno == null && paginaDB.father!= null){PadreInterno = new KPage((int)paginaDB.father); }返回PadreInterno;' – 2012-04-07 17:16:12