类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等都是结构。

作者:GY小小鸟
         
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/YangFengHui/p/2019104.html