类Class与结构比较

刚刚查了下MSDN,发现结构是由System.Object基类派生的。结构不是为继承设计的。不能从一个结构中继承,唯一的例外是结构有Object派生,因此结构可以访问Object中的方法。在结构中,甚至可以改写Object中方法----例如重写ToString()方法。结构的继承链是:System.Object--->System.ValueType--->Struct.每个结构都派生与ValueType.

在我的理解来看,结构的出现,是为了提升性能,有时候仅需要一个小小的数据结构,而不需一个类,这时候就可以选择用结构来代替。就比如一个类

class {public double length; public double width;} 我们就可以用struct{ public double length; public double width;}代替。

现在说说class ,sturct的异同吧:

1.class是引用类型,class是分配到内存堆上存储的,class是可以被实例化,可以被继承的。class是引用传递的。

2.struct是值类型的,struct是分配到内存栈上存储的,不能被继承的,struct是值传递的。

比如Int32,Int 16,Boolean等都是结构。

posted @ 2011-04-17 20:43  GY小小鸟  阅读(436)  评论(2编辑  收藏  举报