为什么在静态上下文中使用非静态成员并没有给出错误
本文关键字:并没有 静态成员 出错 错误 静态 上下文 为什么 | 更新日期: 2023-09-27 18:24:13
这是我有疑问的一段C#代码。
class Program
{
class DOB { int d, m, y; }
int a;
enum Month { jan, feb, mar };
static void Main(string[] args)
{
a = 6; //Showing error
DOB d = new DOB(); //DOB is not static; still no error.
Month m = 0; //Month is non static but not showing error(I know it cannot be static)
Console.WriteLine(m);
Console.ReadKey();
}
}
变量a的赋值显示错误,因为它是非静态成员。同时,类DOB和枚举Month也是非静态的,但它不是whing错误。
您不能从静态类或方法访问实例成员。
a
是Program
的实例字段,因此在a = 6
处会出现错误DOB d = new DOB()
只是创建一个DOB
类的新对象,并将其分配给一个局部变量
CCD_ 6还创建了一个新的局部变量。
如果你写了
[...]
DOB d;
static void Main(string[] args)
{
d = new DOB();
您会得到与a
相同的错误。