自动属性的堆栈溢出异常

Stack Overflow Exception on Auto Properties

我的应用程序在启动某些自动属性和 object 时抛出堆栈溢出异常。

他们工作没有问题,我没有修改他们。

基本上我有一个实现接口 "IRule" 的抽象 class "Rule",那些属性来自接口。 然后我有一个继承自 Rule 的 child class,我在 child class 上得到了异常。

编辑:

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 方法出现异常

实例化具有这些属性的新 object 时会发生这种情况。

Si è verificata l'eccezione System.WhosebugException
  HResult=0x800703E9
  Messaggio=Generata eccezione di tipo 'System.WhosebugException'.

我想不通,有什么想法吗?谢谢!

在您的 Initialize 部分中,您正在实例化一个新的 RuleA。这个新的 RuleA 将构建自己,并在这样做时调用自己的 Initialize 部分并创建第三个 RuleA。这将创造第四个。还有五分之一。以此类推,直到堆栈填满。

我不确定你想要完成什么,但我的猜测是,而不是这个

protected override void Initialize()
{
    base.Initialize();

    _bestSettings = new RuleA();
}

您打算这样做:

protected override void Initialize()
{
    base.Initialize();

    _bestSettings = this; 
}