C# 如何在方法内声明/设置静态变量
我无法在方法中获取/设置静态变量。我怎么做C# 如何在方法内声明/设置静态变量,c#,methods,static,get,set,C#,Methods,Static,Get,Set,我无法在方法中获取/设置静态变量。我怎么做 public class LoginDialog { // class members private static string _user="" ; public void RunDialog() { _user = "Peter"; } public static string _User { get; set; } } 在阅读了答案之后,我编辑了我的代码,
public class LoginDialog
{
// class members
private static string _user="" ;
public void RunDialog()
{
_user = "Peter";
}
public static string _User { get; set; }
}
在阅读了答案之后,我编辑了我的代码,但仍然无法获得静态变量\u 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; }
}
属性\u User
创建自己的不可见私有支持字段,这就是为什么它与您在别处声明的私有\u User
字段完全分离的原因
(样式指南规定了公共静态属性的名称User
,但这只是一个指南。)
对于不支持自动属性且公共属性名称中没有下划线的C#的早期版本,还有另一种方法:
public class LoginDialog
{
private static string _user;
// class members
public void RunDialog()
{
_user = "Peter";
}
public static string User { get { return _user; } }
}
如果您希望设置
\u user
并通过\u user
访问它,那么这将不起作用,因为\u user
当前是一个自动属性+1很可能是问题所在,即使OP没有说明如何“获取”静态值。变量静态声明在哪里???(顺便说一句!!)为什么在我的示例中不起作用?@kmxillo静态变量声明是通过一个名为“自动实现的属性”或“自动属性”的功能进行的,该功能的语法为PropName{get;set;}
,其中get或set都没有内容。如果您访问该属性,编译器会自动为其创建一个备份字段,那么在C#中您永远看不到或无法访问该字段@phoog:如何在类内部设置私有静态变量,从外部设置为否?我想从外部类中获取,无集合。@kmxillo此答案中的两个示例都有一个只能在声明类中设置的私有字段。