C# get, set Eigenschaften
Ich habe den folgenden code:
private void button1_Click(object sender, EventArgs e)
{
Class1 myClass = new Class1("ttt");
myClass.Name = "xxx";
MessageBox.Show(myClass.Name);
}
und
class Class1
{
string str = "";
public Class1(string name)
{
str = name;
}
public string Name
{
get { return str; }
set;
}
}
Zunächst habe ich festgelegt:
myClass.Name = "ccc";
aber später geändert zu:
myClass.Name = "xxx";
und auch verändert:
set {str = value;}
zu:
set;
Warum, wenn ich es laufen lasse bekomme ich "ccc" anstelle von "xxx" ?
In meinem aktuellen code gibt es "ccc".
- Es ist sehr verwirrend zeigt die änderungen. Einfach posten, was Ihr aktuelle code - im Idealfall als ein kurzes, aber vollständiges Programm.
- Und dieser code tatsächlich kompiliert???
set;
keine Aktion zugeordnet. Es tut sich nix.{str = value;}
ist der Teil, der tatsächlich sets Ihre Immobilie. Undeletable.- fixieren Sie Ihre Fehler bei der Kompilierung. IDE wahrscheinlich gefragt, ob Sie möchten, führen Sie die Letzte bekannte funktionierende Konfiguration. Beheben Sie den Fehler bei der Kompilierung als ich unten vorgeschlagen
Du musst angemeldet sein, um einen Kommentar abzugeben.
sollte
Ändern Sie Ihre
Name
- Eigenschaft wie folgt:Zu Antwort deiner Frage, der Grund, warum man "ccc" anstelle von "xxx" ist, dass Sie Fehler bei der Kompilierung. Wenn Sie Ihre Anwendung ausführen, werden Sie gefragt, ob Sie möchten, führen Sie den letzten bekannten funktionierenden Konfiguration. Das Letzte mal Ihr Programm war zu kompilieren, die Sie verwendet, "ccc", als wörtlich, und das ist das, was noch läuft.
Beheben den Fehler bei der Kompilierung und starten Sie es wieder, und dann wird es "xxx"
Muster
ist, was heißt "Automatisch Implementierte Eigenschaften".
Den compilier erstellt einen privaten, anonymen Feld sichern, dass kann nur der Zugriff über die property get-und set-Accessoren.
Was Sie original-code zu tun scheint, ist man auf einem Feld, das Sie definiert, aber ein Satz auf dem anonymen Feld sichern. Deshalb bauen Fehler ...