我有一个静态类,定义如下:
public static class Classroom
{
public string Name;
//other members
}
如何在另一个类中访问变量Name
?
因为它是一个静态类,所以无法创建像这样的实例
Classroom ClassroomObj = new Classroom();
由于Name
不是静态的,因此我无法在不创建实例的情况下访问它。那么我该如何访问变量呢?
答案 0 :(得分:4)
您还必须创建变量static
:
public static class Classroom
{
public static string Name;
//other members
}
原因是:您的静态类可以被视为使用其名称访问的单个实例,而不是使用new
创建实例并使用变量名访问它。因此,此静态类中的任何属性也必须具有static
,以便通过使用类名再次可用。
答案 1 :(得分:4)
对于static class
,您可以'创建其实例:
public static class MyClass {
public static String SomeField;
....
}
// the class is static, no instances are allowed
var o = new MyClass(); // <- Compile time error!
但是,非静态(即实例)字段需要实例,在静态类的情况下无论如何都无法提供。这就是为什么 static 类中不允许使用非静态字段的原因。所以你应该把你的班级改成序数一个:
// No static
public class Classroom
{
public string Name;
...
}
...
Classroom room = new Classroom();
room.Name = "123";
或者Name
也是static
(我怀疑,但是,你想要那种解决方案:它意味着你只有一个 {{1 }}):
Classroom
答案 2 :(得分:0)
您不能在静态类中声明实例成员