posted @ 2007-03-21 23:28 taoeternal 阅读(398) 评论(0) 推荐(0) 编辑
摘要:
条款7:将值类型尽可能实现为具有常量性和原子性的类型 具有常量性的类型很简单,它们自创建后便保持不变。如果在构造的时候就验证了参数的有效性,我们就可以确保从此之后它都处于有效的状态。因为我们不可能再更改其内部状态。通过禁止在构建对象之后更改对象状态,我们实际上可以省却许多必要的错误检查。具有常量性的... 阅读全文
摘要:
[1]. 即使用属性的代码。——译者注 [2]. 即声明的同时初始化。——译者注 [3]. 译者认为这里的“运行时版本”应为“运行时常量”。——译者注 [4]. 有关转换操作符,参见条款28。——译者注 [5]. 前提是st的实际类型,即运行时类型要一致。——译者注 [6]. 应该为InvalidCastException。——译者注 [7]. .isinst是as和is... 阅读全文
posted @ 2007-03-21 22:07 taoeternal 阅读(230) 评论(0) 推荐(0) 编辑
摘要:
CSS意即Cascading Style Sheets。它是一种允许在HTML元素上添加效果的简单风格语言。每个元素类型以及这种类型的某个特定元素的每次出现都可以被声明为一种独特的风格,例如,边缘空白、位置、颜色、以及大小。你可以把这些风格单想象成模版,和桌面发布的应用程序模版很类似。举例来说, ... 阅读全文
posted @ 2007-03-21 05:24 taoeternal 阅读(360) 评论(1) 推荐(0) 编辑
摘要:
条款6:明辨值类型和引用类型的使用场合 值类型还是引用类型?结构还是类?如何正确地使用它们?这里不是C++,在那里,所有的类型都被我们定义为值类型,然后我们可以选择创建它们的引用形式。这也不是Java,在那里,所有的类型都是引用类型[9]。在C#中,我们必须在设计类型的时候就决定类型实例的行为。这种... 阅读全文
posted @ 2007-03-21 01:03 taoeternal 阅读(388) 评论(1) 推荐(0) 编辑
摘要:
条款5:总是提供ToString()方法 System.Object.ToString()恐怕是.NET中最常用的方法了。应该为我们的类的所有客户代码提供一个合理的版本,否则这些代码就只能使用我们的类的一些属性来自己定制可读的表示了。类型的字符串表示非常有用,可以在很多地方向用户显示对象的有关信息, 阅读全文
posted @ 2007-03-21 01:02 taoeternal 阅读(592) 评论(0) 推荐(0) 编辑
摘要:
条款4:使用Conditional特性代替#if条件编译 #if/#endif条件编译常用来由同一份源代码生成不同的结果文件,最常见的有debug版和release版。但是,这些工具在具体应用中并不是非常得心应手,因为它们太容易被滥用了,使用它们创建的代码通常都比较难理解,且难以调试。C#语言的设计 阅读全文
posted @ 2007-03-21 01:02 taoeternal 阅读(638) 评论(0) 推荐(0) 编辑
摘要:
条款3:操作符is或as优于强制转型 C#是一门强类型语言。一般情况下,我们最好避免将一个类型强制转换为其他类型。但是,有时候运行时类型检查是无法避免的。相信大家都写过很多以System.Object类型为参数的函数,因为.NET框架预先为我们定义了这些函数的签名。在这些函数内部,我们经常要把那些参 阅读全文
posted @ 2007-03-21 01:01 taoeternal 阅读(422) 评论(0) 推荐(0) 编辑
摘要:
条款2:运行时常量(readonly)优于编译时常量(const) C#语言有两种不同的常量机制:一种为编译时(compile-time)常量,一种为运行时(runtime)常量。两种常量有着非常迥异的行为,使用不正确会导致程序的性能下降或者出现错误。这两种代价,哪一个都没有人愿意承担,但是如果必须... 阅读全文
posted @ 2007-03-21 01:00 taoeternal 阅读(590) 评论(0) 推荐(1) 编辑