item 1: always use properties instead of accessible data members
这个是地球人都知道的条款了。你需要记住,属性是类的外部接口部分,而(公共)成员却是内部实现。如果把内部实现暴露给外部,对于以后类的实现变更是非常不利的。
item 2: prefer readonly to const
这个条款需要注意一下几点:
(1)const在编译期发生作用,即编译器会将所有的const成员置换成对应的常量“值”。
(2)即使引用其他程序集中的const成员,本程序集中也是硬编码了const成员的值。
(3)readonly在运行期被评估,所以其性能比const稍差,但是灵活性更高。
(4)const的值必须在编译期决定,所以不能使用new为其赋值。
(5)更新一个公有的const成员的值应被视为接口改变,而更新一个readonly变量的值可视为内部实现的改变。
item 3: prefer the is or as operators to casts
(1)is或as称为“动态转换”,是尝试性的,如果失败,不会抛出异常。尽可能使用as操作符。该机制使用元数据完成功能。
(2)cast称为“强制转换”,如果失败,则抛出异常--代价高昂。
(3)is、as、cast转换都不会调用自定义的转换操作符。
(4)is可以判断一个object是否为值类型,而as不行。
(5)请注意type.isassignablefrom()和type.issubclassof()方法,他们也是常用的“类型检测”手段。注意,type.issubclassof()方法不支持接口检测,而type.isassignablefrom()支持。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器