Eine nicht behandelte Ausnahme vom Typ "System.StackOverflowException" ist aufgetreten

Warum das? Das ist mein Code:

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

    public string Titolo
    {
        get { return Titolo; }
        set { Titolo = value; }
    }
}
</code>

Ich setze Daten vom Konstruktor. Also, ich würde gerne etwas machen

<code>KPage page = new KPage();
Response.Write(page.Titolo);
</code>

aber ich bekomme diesen Fehler auf:

<code>set { Titolo = value; }
</code>
 Hans Passant04. Apr. 2012, 22:02
Der Titolo-Getter verwendet die Titolo-Eigenschaft. Dessen Getter nutzt die Titolo-Eigenschaft. Dessen Getter nutzt die Titolo-Eigenschaft. Dessen Getter nutzt die Titolo-Eigenschaft. Dessen Getter nutzt die Titolo-Eigenschaft. Dessen Getter nutzt die Titolo-Eigenschaft. Dessen Getter nutzt die Titolo-Eigenschaft ... Kaboom.

Antworten auf die Frage(3)

Lösung für das Problem

Du hast hier eine Endlosschleife:

<code>public string Titolo
{
    get { return Titolo; }
    set { Titolo = value; }
}
</code>

Der Moment, auf den Sie sich beziehenTitolo In deinem Code ruft der Getter oder Setter den Getter auf, der den Getter aufruft, der den Getter aufruft, der den Getter aufruft, der den Getter aufruft ... Bam -StackOverflowException.

Verwenden Sie entweder ein Hintergrundfeld oder verwenden SieAutomatisch implementierte Eigenschaften:

<code>public string Titolo
{
    get;
    set;
}
</code>

Oder:

<code>private string titolo;
public string Titolo
{
    get { return titolo; }
    set { titolo = value; }
}
</code>

ich Auto-Eigenschaften verwenden:

<code>public string Titolo
{
    get;
    set;
}
</code>

Ändern

<code>public class KPage
{
    public KPage()
    {
       this.    }

    public string Titolo
    {
        get;
        set;
    }
}
</code>

Ihre Antwort auf die Frage