类和结构的区别
2015-07-07 22:58
281 查看
类和结构的区别
结构是值类型,类是引用类型。
结构不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用sealed 声明,可是结构是隐式的sealed , 类则完全可扩展的,除非显示的声明sealed 否则类可以继承其他类和接口,自身也能被 继承 。 注:虽然结构不能被继承 可是结构能够继承接口,方法和类继承接口一样。
结构没有默认的构造函数,但是可以添加构造函数 ,结构没有析构函数, 不能有protected 修饰符, 可以不使用new 初始化, 在结构中初始化实例字段是错误的 。 类则 有默认的构造函数和有析构函数 , 有protected 修饰符, 必须使用new 初始化。
对于大量的逻辑的对象,创建类要比创建结构好一些 , 结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。 在表现抽象和多级别的对象层次时,类是最好的选择 , 大多数情况下该类型只是一些数据时,结构是最佳的选择。
-----------摘自百度文库《c#中结构与类的区别》
结构是值类型,类是引用类型。
结构不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用sealed 声明,可是结构是隐式的sealed , 类则完全可扩展的,除非显示的声明sealed 否则类可以继承其他类和接口,自身也能被 继承 。 注:虽然结构不能被继承 可是结构能够继承接口,方法和类继承接口一样。
结构没有默认的构造函数,但是可以添加构造函数 ,结构没有析构函数, 不能有protected 修饰符, 可以不使用new 初始化, 在结构中初始化实例字段是错误的 。 类则 有默认的构造函数和有析构函数 , 有protected 修饰符, 必须使用new 初始化。
对于大量的逻辑的对象,创建类要比创建结构好一些 , 结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。 在表现抽象和多级别的对象层次时,类是最好的选择 , 大多数情况下该类型只是一些数据时,结构是最佳的选择。
相关文章推荐
- php魔术方法__set和__get,__isset,__unset的用法
- GitHub入门级教程
- 编写高质量代码——JavaScript篇
- 集合(2)TreeSet , 泛型
- 【C++ 基础】——引用
- UBER人民优步司机注册攻略
- LeetCode Reverse Bits
- 好久没有来这里了,今天又一次回来。
- Ubuntu 12.04 与Eclipse C++部署
- something about Android activity
- something about Android activity
- Foundation框架-05 NSNumber和NSValue
- 每天一个linux命令(9):touch 命令
- C++ cin系列与get系列 函数 实现 用例 浅析
- 2015070707 - 求助
- CodeIgniter学习笔记(一)——CI简介与MVC设计模式
- 云笔记项目
- 全局网站标志
- RDLC报表系列一
- Java中的继承与组合