Wie erklären/eine statische variable innerhalb einer Methode
Ich kann nicht get - /set-eine statische variable innerhalb einer Methode. Wie kann ich es tun?
public class LoginDialog
{
//class members
private static string _user="" ;
public void RunDialog()
{
_user = "Peter";
}
public static string _User { get; set; }
}
Nach dem Lesen der Antworten, die ich Bearbeiten mein code und ich kann immer noch die statische variable _durch. Was mache ich falsch?
public class LoginDialog
{
private static string _user;
public void RunDialog()
{
LoginDialog._user = "Peter";
}
public static string _User { get {return _user;} }
}
Wenn ich erkläre, wie alles funktioniert, sondern ich möchte erklären, innerhalb der Methode.
private static string _user="Peter";
Wenn Sie erwarten, dass set
_user
und auf Sie durch _User
dann, dass wird nicht funktionieren, da _User
ist derzeit eine auto-Eigenschaft. msdn.microsoft.com/en-us/library/bb384054.aspxInformationsquelleAutor kmxillo | 2012-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Sie die Einstellung einer privaten statischen Feld, und dann vermutlich das Lesen der öffentliche statische Eigenschaft anderswo. In Ihrem code, der öffentliche statische Eigenschaft ist völlig unabhängig von der privaten, statischen Feld.
Versuchen Sie dies:
Eigentum
_User
schafft seinen eigenen, unsichtbaren privaten Feld sichern, und daher ist es völlig getrennt von der privaten_user
Bereich, den Sie erklärt an anderer Stelle.(Stil-Richtlinien schreiben die Namen
User
für die öffentliche statische Eigenschaft, aber das ist nur ein Leitfaden.)Hier ist ein weiterer Ansatz, der für frühere Versionen von C# nicht unterstützt automatische Eigenschaften, und ohne den Unterstrich in die öffentliche Eigenschaft name:
wo ist die variable statisch Erklärung??? (BTW funktioniert!!) der Grund, warum in meinem Beispiel nicht funktioniert?
Die statische Deklaration von Variablen wird über eine Funktion namens "Auto Implementierte Eigenschaften", oder "Auto " Eigenschaften", die die syntax
PropName { get; set; }
wo weder die get-oder set-Inhalt haben. Sie auf die Eigenschaft zugreifen und der compiler macht ein Feld sichern für Sie automatisch, Sie nie sehen, oder sind in der Lage, Zugang zu diesem Feld in C#. msdn.microsoft.com/en-us/library/bb384054.aspxWie kann ich die private statische variable innerhalb der Klasse, nicht von einer externen? Ich werde wie zu bekommen aus externen Klasse, keine.
die beiden Beispiele in dieser Antwort haben Sie einen privaten Bereich, kann nur innerhalb der Klasse deklarieren.
InformationsquelleAutor phoog