结构和类有什么异同
类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使用new初始化。
结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化。
如何选择使用结构还是类:
a)堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些
b)结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。
c)在表现抽象和多级别的对象层次时,类是最好的选择
d)大多数情况下该类型只是一些数据时,结构是最佳的选择
结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化。
如何选择使用结构还是类:
a)堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些
b)结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。
c)在表现抽象和多级别的对象层次时,类是最好的选择
d)大多数情况下该类型只是一些数据时,结构是最佳的选择
【结构和类有什么异同】相关文章
1. 结构和类有什么异同
2. 简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
3. static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
5. 什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
7. Final类有什么特点
8. spring的jdbc与传统的jdbc有什么区别,其核心类有那些?
9. What\'s the difference between an interface and abstract class? (接口与抽象类有什么区别)
10. What\'s the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
本文来源:https://www.mianshiwenti.com/a12784.html
进入下载页面
上一篇:.NET是怎么支持多种语言的
下一篇:私有程序集与共享程序集有什么区别
﹝结构和类有什么异同﹞相关内容
- 职业道德的内容和类型
- Can a struct inherit from another struct? (结构体能继承结构体吗)
- 同步和异步有何异同,在什么情况下分别使用他们?举例说明
- 同步和异步有何异同,在什么情况下分别使用他们
- 同步和异步有何异同,在什么情况下分别使用他们?
- short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
- 简述synchronized和java.util.concurrent.locks.Lock的异同
- 运行时异常与一般异常有何异同?
- DataReader和DataSet的异同
- Windows和Linux动态库应用异同