Laden...

StackOverflowException beim Setzen einer Eigenschaft [==> im Setter den Wert einem Feld zuweisen]

Erstellt von .netFreak vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.195 Views
Thema geschlossen
.
.netFreak Themenstarter:in
11 Beiträge seit 2011
vor 12 Jahren
StackOverflowException beim Setzen einer Eigenschaft [==> im Setter den Wert einem Feld zuweisen]

Hallo zusammen,

Ich hab eine kleine Console Application, in der Main Methode ist folgendes drin

GeneralMetaData generalMetaData = new GeneralMetaData();
            
            generalMetaData.FirstName = "FirstName";
            generalMetaData.LastName = "LastName";

GeneralMetaData ist eine Klasse wo ich folgendes drin hab

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

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

Bei set FirstName = value bekomme ich eine StackOverflowException, ich seh aber nicht wirklich wieso? Wo ist hier die Rekursion??
Ich füll ja nur ein Property aus

Gruss

2.298 Beiträge seit 2010
vor 12 Jahren

Die Rekursion entsteht weil du FirstName etwas zuweist, was dazu führt das FirstName etwas zugewiesen wird und so weiter.

Richtiger wäre hier:


private string _sFirstName;
public string FirstName
            {
                get { return _sFirstName; }
                set { _sFirstName = value; }
            }



Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

.
.netFreak Themenstarter:in
11 Beiträge seit 2011
vor 12 Jahren

Vielen Dank !!!

771 Beiträge seit 2009
vor 12 Jahren

Oder einfach die automatischen Properties benutzen:


public string FirstName { get; set; }

.
.netFreak Themenstarter:in
11 Beiträge seit 2011
vor 12 Jahren

Hab ich genau so gemacht jetzt 😃 Danke

B
387 Beiträge seit 2005
vor 12 Jahren

hehe
das auch wirklich jeder einmal in so eine Falle tappt.. 😃

Hinweis von MarsStein vor 12 Jahren

Auch wenn man manchmal den Wald vor lauter Bäumen nicht sieht: Grundlagen sind das trotzdem.
==> geschlossen

Thema geschlossen