9

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

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; }
4

3 に答える 3

39

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

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; }
}
于 2012-04-04T19:59:28.680 に答える
3

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

public string Titolo
{
    get;
    set;
}
于 2012-04-04T19:59:55.447 に答える
2

への変更

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

    public string Titolo
    {
        get;
        set;
    }
}
于 2012-04-04T19:59:26.003 に答える