《.NET框架程序设计》第五章 基元类型、引用类型与值类型
来源:互联网 发布:阿里云自动化测试 编辑:程序博客网 时间:2024/06/05 00:37
一、基元类型(primitive type):编译器直接支持的数据类型。
引用类型(reference type):总是从托管堆上进行分配。内存的回收通过垃圾收集器。
值类型(value type):通常分配在线程的堆栈中(当然,也可以被嵌入到一个引用类型的对象中)。值类型实例不受垃圾收集器的控制。
二、尽量使用FCL类型名:在开发中,尽量使用FCL类型名,也就是System.String,System.Int32等等。而不要使用string,int等基元类型名。因为FCL类型名具体的可以看出类型的一些限制,如Int32就是表示32位的有符号数,比较直观;另外,一些基元类型和对应的FCL类型名称不相同,容易引起混淆,如基元类型float对应的FCL类型名是System.Single;最后,同一个基元类型,可能在不同的编程语言中对应不同的FCL类型,这就会带来了一系列的潜在的问题。
三、类型转换:可以使用System.Convert类型的静态方法在不同类型的对象之间进行转型。Convert类型中的静态方法ChangeType可以将一个类型转换为另外一个任意的类型,前提是被转换类型实现了Iconvertible接口,特别是其中的ToType方法。(是否可以利用这个技术来实现点什么新的功能??)
四、溢出的异常的控制:许多基元类型的算术运算都会导致结果溢出,缺省情况下,这种溢出是不会抛出异常的,可以使用/checked+命令行开关告诉编译器使用带溢出的IL指令来产生代码。(如何在开发环境中打开这个开关??)另一种方法是在代码中使用checked和unchecked操作符来开关一段代码的溢出检查。我个人觉得没有必要使用checked和unchecked操作符来做这种精细的控制,虽然直接打开编译器的溢出检测开发会降低一些应用程序的性能,但是这种影响可以不必考虑。
五、引用类型和值类型的区别:任何”类”都是引用类型,任何”结构”和”枚举”都是值类型。另外,所有的值类型都必须继承自System.ValueType类型。CLR不允许一个值类型被用作基类型。
六、值类型的装箱与拆箱:当需要尽量提高一段程序的执行性能时,可以对这段程序进行分析,尽量减少其中的装箱和拆箱的操作。而之所以很多方法都提供了重载的版本,目的之一就是减少一些常用值类型的装箱操作。
- 《.NET框架程序设计》第五章 基元类型、引用类型与值类型
- 《.NET框架程序设计》第五章 基元类型、引用类型与值类型
- 第五部分 基元类型、引用类型与值类型----读《Microsoft.NET框架程序设计》
- .Net框架程序设计-读书笔记(第五章 基元类型、引用类型和值类型)
- Microsoft.NET.框架程序设计 值类型与引用类型
- CLR Via C# 第五章(基元类型,引用类型与值类型)(1)——读书笔记
- CLR Via C# 第五章(基元类型,引用类型与值类型)(2)——读书笔记
- Read the "clr via C#" of 基元类型,引用类型,值类型(第五章)
- 读书笔记_CLR.via.c#第五章_基元类型_引用类型_值类型
- CH5 基元类型、引用类型与值类型 .net 复习课
- 笔记:js高级程序设计第五章,函数的引用类型与基本类型
- net的值类型与引用类型
- .NET引用类型与值类型
- .net 值类型与引用类型
- 第五章 引用类型
- 第五章:引用类型
- 第五章 引用类型
- 第五章引用类型
- 随遇而安,知足而追求理想
- [原创]VB程序 - 处理字符和文件名称的代码模块
- WEB"超频"年代
- 《.NET框架程序设计》第一章 Microsoft .NET框架开发平台体系结构
- 《.NET框架程序设计》第四章 类型基础
- 《.NET框架程序设计》第五章 基元类型、引用类型与值类型
- 徐小平:不做人生规划,你离挨饿只有三天
- 《.NET框架程序设计》第六章 通用对象操作
- 《.NET框架程序设计》第七章 类型成员及其访问限定
- 《.NET框架程序设计》第八章 常数与字段
- 《.NET框架程序设计》第九章 方法
- 《.NET框架程序设计》第十章 属性
- 《.NET框架程序设计》第十一章 事件
- 中国未来十大科技突破口