Проблема в том, что вы устанавливаете личное статическое поле, а затем, вероятно, читаете общедоступное статическое свойство в другом месте. В вашем коде открытое статическое свойство полностью не зависит от частного статического поля.
Попробуйте это:
public class LoginDialog
{
// class members
public void RunDialog()
{
_User = "Peter";
}
public static string _User { get; private set; }
}
Свойство _User
создает свое собственное невидимое частное вспомогательное поле, поэтому оно полностью отделено от частного _user
поля, которое вы объявили в другом месте.
(Руководства по стилю определяют имя User
для открытого статического свойства, но это всего лишь руководство.)
Вот еще один подход для более ранних версий C #, которые не поддерживают автоматические свойства, и без подчеркивания в имени открытого свойства:
public class LoginDialog
{
private static string _user;
// class members
public void RunDialog()
{
_user = "Peter";
}
public static string User { get { return _user; } }
}