做一点小东西的时候,临时定义了一个Struct重新整理要现实的List<>.
Struct方法执行完毕后发现了这么一个现象,以下是现象演示代码;).大家看了以后,在使用Struct的时候请注意了.
运行结果:
可能是我后知后觉了.大家见笑了.
Struct方法执行完毕后发现了这么一个现象,以下是现象演示代码;).大家看了以后,在使用Struct的时候请注意了.
struct MyStruct
{
public int Value;
public void Update(int i) { Value = i; }
}
class Program
{
static void Main(string[] args)
{
MyStruct[] list = new MyStruct[5];
for (int i = 0; i < 5; i++)
Console.Write(list[i].Value.ToString() + " ");
Console.WriteLine();
for (int i = 0; i < 5; i++)
list[i].Update(i + 1);
for (int i = 0; i < 5; i++)
Console.Write(list[i].Value + " ");
Console.WriteLine();
Console.ReadLine();
List<MyStruct> llist = new List<MyStruct>(new MyStruct[5]);
for (int i = 0; i < 5; i++)
Console.Write(llist[i].Value + " ");
Console.WriteLine();
for (int i = 0; i < 5; i++)
llist[i].Update(i + 1);
for (int i = 0; i < 5; i++)
Console.Write(llist[i].Value + " ");
Console.WriteLine();
Console.ReadLine();
}
{
public int Value;
public void Update(int i) { Value = i; }
}
class Program
{
static void Main(string[] args)
{
MyStruct[] list = new MyStruct[5];
for (int i = 0; i < 5; i++)
Console.Write(list[i].Value.ToString() + " ");
Console.WriteLine();
for (int i = 0; i < 5; i++)
list[i].Update(i + 1);
for (int i = 0; i < 5; i++)
Console.Write(list[i].Value + " ");
Console.WriteLine();
Console.ReadLine();
List<MyStruct> llist = new List<MyStruct>(new MyStruct[5]);
for (int i = 0; i < 5; i++)
Console.Write(llist[i].Value + " ");
Console.WriteLine();
for (int i = 0; i < 5; i++)
llist[i].Update(i + 1);
for (int i = 0; i < 5; i++)
Console.Write(llist[i].Value + " ");
Console.WriteLine();
Console.ReadLine();
}
运行结果:
0 0 0 0 0
1 2 3 4 5
0 0 0 0 0
0 0 0 0 0
1 2 3 4 5
0 0 0 0 0
0 0 0 0 0
可能是我后知后觉了.大家见笑了.