Das Problem ist, dass Sie ein privates statisches Feld festlegen und dann vermutlich die öffentliche statische Eigenschaft woanders lesen. In Ihrem Code ist die öffentliche statische Eigenschaft vollständig unabhängig vom privaten statischen Feld.
Versuchen Sie folgendes:
public class LoginDialog
{
// class members
public void RunDialog()
{
_User = "Peter";
}
public static string _User { get; private set; }
}
Das Anwesen _User
seinen eigenen unsichtbaren privaten Träger Feld erzeugt, weshalb es aus dem privaten _user
Feld völlig getrennt ist, dass Sie an anderer Stelle erklärt.
(Style-Richtlinien den Namen User
für die öffentliche statische Eigenschaft diktieren, aber das ist nur ein Richtwert.)
Hier ist ein weiterer Ansatz, die für frühere Versionen von C#, die nicht automatischen Eigenschaften unterstützen, und ohne Unterstrich in der Name der öffentlichen Eigenschaft:
public class LoginDialog
{
private static string _user;
// class members
public void RunDialog()
{
_user = "Peter";
}
public static string User { get { return _user; } }
}
Wenn Sie '_user' erwarten und auf' _User' zugreifen, funktioniert das nicht, da '_User' momentan eine automatische Eigenschaft ist. http://msdn.microsoft.com/en-us/library/bb384054.aspx –