读书人

构造与类之间的的区别求证

发布时间: 2012-09-08 10:48:07 作者: rapoo

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

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 的默认实现支持引用相等性(对于引用类型)和按位相等性(对于值类型)。”
类是引用类型而结构是值类型。

读书人网 >C#

热点推荐