我的应用程序在启动时抛出了一些自动属性和对象创建的Stack Overflow异常。
他们没有问题,我没有修改过。
基本上我有一个抽象的课程"规则"实现接口" IRule",这些属性来自接口。 然后我有一个继承自Rule的子类,我在该子类上得到了异常。
编辑:
public class RuleA: Rule
{
private RuleA_bestSettings;
#region PROPERTIES
public override Rule BestSettings { get { return _bestSettings; } set { _bestSettings = value as RuleA; } }
#endregion
public RuleA()
{
Initialize();
}
protected override void Initialize()
{
base.Initialize();
_bestSettings = new RuleA();
}
}
}
现在,当我实例化属性
时,我在Initialize方法上获得了异常当具有这些属性的新对象实例化时,会发生这种情况。
Si è verificata l'eccezione System.StackOverflowException
HResult=0x800703E9
Messaggio=Generata eccezione di tipo 'System.StackOverflowException'.
我无法弄清楚,有什么想法吗?谢谢!
答案 0 :(得分:0)
在Initialize
部分中,您要实例化新的RuleA
。这个新的RuleA
将构建自己,这样做会调用自己的Initialize
部分并创建第三个RuleA
。这将创造第四个。第五个。等等,直到堆栈填满。
我不确定你想要完成什么,但我的猜测是,而不是这个
protected override void Initialize()
{
base.Initialize();
_bestSettings = new RuleA();
}
你打算这样做:
protected override void Initialize()
{
base.Initialize();
_bestSettings = this;
}