0

次のエラーが表示されます。

 An unhandled exception of type 'System.StackOverflowException'
 occurred in ciscontrols.dll

関連するコードは次のとおりです。

private int Dval;
public int DecPlaces
{
    get { return Dval; }
    set
    {
        DecPlaces = value;
        if (value < 2)
        {
            throw new ArgumentOutOfRangeException("decplaces", "decimal places minimum value should be 2.");
        }
        else this.Dval = value;
    }
}
4

3 に答える 3

2

コード内の私のコメントを参照してください -

private int Dval;
    public int DecPlaces
    {
        get { return Dval; }
        set
        {
            //DecPlaces = value;  **** This is calling set method again, hence the exception. Just comment this line

            if (value < 2)
            {
                throw new ArgumentOutOfRangeException("decplaces", "decimal places minimum value should be 2.");
            }
            else this.Dval = value;
        }
    }
于 2013-03-08T07:25:57.037 に答える
1

Set Property Infinite Manner を呼び出しています

  DecPlaces = value;

これを行うには、lcoal 変数を使用します。

int m= value;
于 2013-03-08T07:24:04.090 に答える
0

問題は次のとおりです。

DecPlaces = value;

あなたは自己参照しています。セッターを呼び出し続けます。その行を削除するだけで、うまくいくはずです。

于 2013-03-08T07:26:07.147 に答える