日期:2014-05-18  浏览次数:20667 次

结构与类之间的的区别求证
是结构的话当通过指向同一实例的另一个变量访问时,更改的类成员的值会影响这些成员。
是类的话,没个类的实例都会指向各自的内存地址
这样说对吗?

Class1现在是一个结构, 
  ArrayList engineers = new ArrayList();
  Class1 a = new Class1();
  a.a = 0;
  a.b = 1;
  Class1 b = new Class1();
  b.b = 0;
  b.a = 1;
  engineers.Add(a);
  engineers.Add(b);
  MessageBox.Show(engineers.Count.ToString());
  Class1 c = new Class1();
  c.a = 0;
  c.b = 1;
  engineers.Remove(c);
  MessageBox.Show(engineers.Count.ToString());
这样删除数据的话,它是通过数据在栈里面进行删除? 还是怎么的

------解决方案--------------------
探讨
引用:

引用:
引用:

至于为什么在class1是结构的情况下会移除a对象
关键就在于
C# code

public virtual void Remove(object obj)
{
int index = this.IndexOf(obj);//这里
if (index >= 0)
{
this……

------解决方案--------------------
MSDN上 ArrayList.Remove 方法 的备注部分有说明,
“此方法通过调用 Object.Equals 确定相等性。”
而 Object.Equals 方法 备注部分也有说明,
“Equals 的默认实现支持引用相等性(对于引用类型)和按位相等性(对于值类型)。”
类是引用类型而结构是值类型。