【发布时间】:2012-04-07 16:18:01
【问题描述】:
这是我代码中的属性:
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 { }
}
但它说:
App_Code.rhj3qeaw.dll 中出现“System.StackOverflowException”类型的未处理异常
为什么?我该如何解决?
编辑
改正代码后,这是我的实际代码:
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;
}
}
你怎么看?
【问题讨论】:
-
else { PadreInterno= null; }在更正后的代码中有什么用处?仅当PadreInterno还是null时才调用此代码:if (PadreInterno == null)。像这样简化if (PadreInterno == null && paginaDB.father != null) { PadreInterno = new KPage((int)paginaDB.father); } return PadreInterno;
标签: c# .net properties stack-overflow