2012-04-04 15 views
7

Warum? Das ist mein Code:Eine nicht behandelte Ausnahme vom Typ 'System.StackOverflowException' ist aufgetreten

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

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

Ich setze Daten durch den Erbauer. Also, würde Ich mag Somethings zu tun, wie

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

aber ich habe diesen Fehler auf:

set { Titolo = value; } 
+1

möglich Duplikat [Overloading Getter und Setter Ursachen in Stackoverflow C#] (http://stackoverflow.com/questions/1437791/overloading-getter-and-setter-causes -stackoverflow-in-c-sharp) oder http://stackoverflow.com/questions/5676430/stackoverflowexception-was-unhandled – user7116

+7

Der Titolo-Getter verwendet die Titolo-Eigenschaft. Deren Getter nutzt die Titolo-Eigenschaft. Deren Getter nutzt die Titolo-Eigenschaft. Deren Getter nutzt die Titolo-Eigenschaft. Deren Getter nutzt die Titolo-Eigenschaft. Deren Getter nutzt die Titolo-Eigenschaft. Deren Getter nutzt die Titolo-Eigenschaft ... Kaboom. –

Antwort

36

Sie haben eine unendliche Schleife hier:

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

In dem Moment, in dem Sie aufverweisenIn Ihrem 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.

Entweder ein Trägerfeld verwenden oder auto implemented properties verwenden:

public string Titolo 
{ 
    get; 
    set; 
} 

Oder:

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

Wechsel zu

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

    public string Titolo 
    { 
     get; 
     set; 
    } 
} 
3

Sie haben einen selbstbezüglicher Setter. Sie haben wahrscheinlich gedacht Auto-Eigenschaften zu verwenden:

public string Titolo 
{ 
    get; 
    set; 
} 
Verwandte Themen