如何在方法内部声明/设置静态变量
本文关键字:设置 静态 变量 声明 内部 方法 | 更新日期: 2023-09-27 18:29:05
我无法在方法中获取/设置静态变量。我该怎么做?
public class LoginDialog
{
// class members
private static string _user="" ;
public void RunDialog()
{
_user = "Peter";
}
public static string _User { get; set; }
}
在阅读了答案后,我编辑了代码,但仍然无法获得静态变量_user。我做错了什么?
public class LoginDialog
{
private static string _user;
public void RunDialog()
{
LoginDialog._user = "Peter";
}
public static string _User { get {return _user;} }
}
当我这样声明时,一切都很好,但我更希望在方法内部声明。
private static string _user="Peter";
问题是您设置了一个私有静态字段,然后可能在其他地方读取公共静态属性。在代码中,公共静态属性完全独立于私有静态字段。
试试这个:
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; } }
}