class test
{
static void Main()
{ A a = new A();
a.addi();
A b = new A();
b.addi();
Console.WriteLine(A.i); } class A
{
public static int i = 0;
public void addi()
{
i = i + 1;
}
}}
这个输出应该是2,静态变量在实例中共享,被加了两次,我可以理解,但是为什么修改之后:
class test
{
static void Main()
{ A a = new A();
a.addi();
A b = new A();
b.addi();
Console.WriteLine(a.i);
Console.WriteLine (b.i);
} class A
{
public int i = 0;
public void addi()
{
i = i + 1;
}
}}
输出都是1呢?应该是每个实例都有自己的变量了,我的理解应该是a.i是1而b.i是2或者a.i是0而b.i是1,但是运行结果都是1,为什么呢?
{
static void Main()
{ A a = new A();
a.addi();
A b = new A();
b.addi();
Console.WriteLine(A.i); } class A
{
public static int i = 0;
public void addi()
{
i = i + 1;
}
}}
这个输出应该是2,静态变量在实例中共享,被加了两次,我可以理解,但是为什么修改之后:
class test
{
static void Main()
{ A a = new A();
a.addi();
A b = new A();
b.addi();
Console.WriteLine(a.i);
Console.WriteLine (b.i);
} class A
{
public int i = 0;
public void addi()
{
i = i + 1;
}
}}
输出都是1呢?应该是每个实例都有自己的变量了,我的理解应该是a.i是1而b.i是2或者a.i是0而b.i是1,但是运行结果都是1,为什么呢?
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
分配内存空间 ,里面有i ----------1A b = new A();
分配另一个空间,里面有i ----------21,2空间都叫i 而已,不过内容不同