关于类中静态变量与非静态变量的问题
大致代码如下:
public class abc
{
static int a;
int b;
public abc()
{
a = a + 1;
b = a;
}
public void bcd()
{
Console.WriteLine("{0},{1}",a,b);
Console.Read();
}
}
class Program
{
static void Main(string[] args)
{
@ abc c = new abc();
c.bcd();
@@ abc d = new abc();
c.bcd();
c.bcd();
d.bcd();
Console.Read();
}
}
结果是:
1,1
2,1
2,1
2,2
我知道一个类的所有实例是共享静态变量的,但对于以上结果还是感到不解
1. @语句后 a=1 b=1
2. @@语句后 由于是重新创建了另一个实例且a是静态变量 c.bcd()得到的结果应该是a=2 b=2啊 为何是b=1啊
3. c.bcd()与d.bcd()为什么不同啊 为什么d.bcd()输出的结果与我期望的相同呢