Google [站内搜索]

预览模式: 普通 | 列表

BOM简介

BOM全称为byte order mark,它是UTF编码方案里用于标识编码的标准标记。它的实现是在文本文件的最开始增加特定的几个字节,用于说明该文本文件使用的编码方式。以下是各种UTF编码的ROM:



查看BOM最常用的方式是使用UltraEdit打开文本文件,按Ctrl+H切换到十六进制编辑器,查看其最开始的几个字节:

查看更多...

分类:其他 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4285

Effective C# 原则17:装箱和拆箱的最小化

值类型是数据的容器,它们不具备多态性。另一方面就是说,.Net框架被设计成单一继承的引用类型,System.Object,在整个继承关系中做为根对象存在。设计这两种类型的目的是截然不同的,.Net框架使用了装箱与拆箱来链接两种不同类型的数据。装箱是把一个值类型数据放置在一个无类型的引用对象上,从而使一个值类型在须要时可以当成引用类型来使用。拆箱则是额外的从“箱”上拷贝一份值类型数据。装箱和拆箱可以让你在须要使用System.Object对象的地方使用值类型数据。但装箱与拆箱操作却是性能的强盗,在些时候装箱与拆箱会产生一些临时对象,它会导致程序存在一些隐藏的BUG。应该尽可能的避免使用装箱与拆箱。

装箱可以把一个值类型数据转化成一个引用类型,一个新的引用对象在堆上创建,它就是这个“箱子”,值类型的数据就在这个引用类型中存储了一份拷贝。参见图2.3,演示了装箱的对象是如何访问和存储的。箱子中包含一份这个值类型对象的拷贝,并且复制实现了已经装箱对象的接口。当你想从这个箱子中取回任何内容时,一个值类型数据的拷贝会被创建并返回。这就是装箱与拆箱的关键性概念:对象的一个拷贝存放到箱子中,而不管何时你再访问这个箱子时,另一个拷贝又会被创建。

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5300