web-dev-qa-db-ja.com

タイプ「System.StackOverflowException」の未処理の例外が発生しました

なぜこれ?これは私のコードです:

public class KPage
{
    public KPage()
    {
       this.Titolo = "example";
    }

    public string Titolo
    {
        get { return Titolo; }
        set { Titolo = value; }
    }
}

コンストラクタでデータを設定します。だから、私は何かをしたいと思います

KPage page = new KPage();
Response.Write(page.Titolo);

しかし、私はそのエラーを受け取ります:

set { Titolo = value; }
8
markzzz

ここに無限ループがあります:

public string Titolo
{
    get { return Titolo; }
    set { Titolo = value; }
}

コードでTitoloを参照すると、ゲッターまたはセッターがゲッターを呼び出し、ゲッターを呼び出すゲッターが、ゲッターを呼び出すゲッターを呼び出します。Bam-StackOverflowException

バッキングフィールドを使用するか、 自動実装プロパティ を使用します。

public string Titolo
{
    get;
    set;
}

または:

private string titolo;
public string Titolo
{
    get { return titolo; }
    set { titolo = value; }
}
38
Oded

自己参照セッターがあります。あなたはおそらく自動プロパティを使用するつもりでした:

public string Titolo
{
    get;
    set;
}
3
user7116

への変更

public class KPage
{
    public KPage()
    {
       this.Titolo = "example";
    }

    public string Titolo
    {
        get;
        set;
    }
}
2
Albin Sunnanbo