2014年8月13日

摘要: 分析问题 .NET所有数据都以类型的方式表示,数组也不例外。存储不同类型项目的数组都是一个类型,.NET会自动地为数组生成新的类型。例如下列申明:DateTime[] times; CLR就会在运行时创建一个DateTime[]类型,所以数组类型可以说是一个类型族,而它们的共性就是所有的数组类型... 阅读全文
posted @ 2014-08-13 17:39 wangjinpeng_study 阅读(1586) 评论(0) 推荐(0)
摘要: 分析问题 由于字符串的不可变性,程序中对用一字符串的大量修改或者对多个引用赋值同一字符串理论上会产生大量的临时字符串对象,这会极大程度地降低系统的性能。对于前者,可以使用StringBuilder类型来解决问题,这在前面章节中已经有所介绍了,而对于后者,.NET提供了另外一种不透明的机制来帮助优化... 阅读全文
posted @ 2014-08-13 11:07 wangjinpeng_study 阅读(186) 评论(0) 推荐(0)
摘要: 分析问题 System.Security.SecureString被设计用来保存一些机密的字符串,完成传统字符串所不能做到的工作。传统字符串以明码的形式分配在内存上,一个简单的内存读写软件可以轻易地捕获这些字符串,这在有些机密系统中是不被允许的。读者可能觉得对字符串加密会解决类似的问题,但事实上对... 阅读全文
posted @ 2014-08-13 10:44 wangjinpeng_study 阅读(287) 评论(0) 推荐(0)
摘要: 分析问题 和传统的编码不同,BASE64编码的设计致力于混淆那些8位字节的数据流。在网络传输、邮件等系统中,BASE64的编码方式被广泛的应用。BASE64不属于机密机制,但它确实把明码编程了一种很难识别的形式。注意 BASE64的算法十分简单,BASE64把所有的位分开,并且重新组合成字节,新... 阅读全文
posted @ 2014-08-13 09:56 wangjinpeng_study 阅读(732) 评论(0) 推荐(0)
摘要: 分析问题 字符串和字节数组之间的转换,事实上代表了现实世界信息和数字世界信息之间的转换,要理解其中的机制,需要先了解一下几个概念。 1、比特。 比特(bit)是指一个位,它可以说是计算机内物理保存的最近本单元。现在的计算机体系采用二进制逻辑,即一个基本单元可以保存两种数值:0和1。这是因为0、... 阅读全文
posted @ 2014-08-13 09:04 wangjinpeng_study 阅读(1524) 评论(0) 推荐(0)
摘要: 分析问题 String的性能问题产生于其内容不可修改的特性。当一个字符串对象被修改、插入、连接、截断时,新的字符串对象将被分配,这会影响性能。更加常见的情况是,一个字符串对象的最终生成需要经过一个组装的过程,而在这个组装过程中必将产生很多的临时字符串对象。这些对象在堆上分配,需要垃圾回收器来回收,... 阅读全文
posted @ 2014-08-13 08:27 wangjinpeng_study 阅读(357) 评论(0) 推荐(0)
摘要: 分析问题 通过查看System.String类型的元数据可以看到,System.String是直接继承自System.Object的一个子类。在前面章节中笔者已经介绍了,所有直接或间接继承自System.ValueType的类型属于值类型,所以,System.String属于引用类型而非值类型。但... 阅读全文
posted @ 2014-08-13 07:53 wangjinpeng_study 阅读(249) 评论(0) 推荐(0)
摘要: 分析问题 程序员经常会面临一些类型转行的工作,其中有些是确定可转换的,例如把一个类型对象转换成基类对象,而有些则是带有尝试性的,譬如把基类引用的对象转换成子类,当执行这样的尝试性转换时,程序员就应该做好捕捉异常的准备。 当一个不正确的类型转行发生时,就会产生InvalidCastExceptio... 阅读全文
posted @ 2014-08-13 07:31 wangjinpeng_study 阅读(646) 评论(0) 推荐(0)

导航