04 2010 档案

摘要: 本章的主要内容是关于错误处理和如何增强可靠性的。首先,定义了什么是错误,强调不能用异常来做流程处理。然后,讲了如何发现错误并进行处理。解释了CLR异常处理的机制,详细讲了System.Exception基础,FCL的异常类,以及如何正确的抛出异常。还演示了如何定义自己的异常,这是一个比较单调易错的工作。接着讲了如何提高生产效率并增强可靠性,给出了使用异常的最佳实践指南。然后讲了如何对待未处理的异常,以及如何调试异常。分析了异常处理的性能问题,阐述了CER的概念和用途。最后讲解了如何使用代码契约来提供程序的鲁棒性,并推荐了一些常用的工具。 阅读全文
posted @ 2010-04-29 15:31 bengxia 阅读(330) 评论(0) 推荐(0)
摘要: 本章讲了如何使用Nullable的值类型,为什么Nullabe?其中一个理由就是与数据库内容表示的一致性。首先讲了如何使用Nullable的值类型,然后讲了??操作符,最后讲了CLR对Nullable提供了哪些特别的支持。 阅读全文
posted @ 2010-04-23 16:46 bengxia 阅读(179) 评论(0) 推荐(0)
摘要: 定制属性(Custom Attribute)是.NET框架中的一个重要革新。定制属性可以允许你以申明的方式标注代码结构。本章先讲了如何使用Attribute以及如何定义一个定制属性,然后解释了Attribute的构造器、字段、属性的数据类型限制,还演示了如何检测类型中使用的定制属性。特别说明了System.Attribute的Equals、Match的内部实现并建议用户改写这些方法以避免反射。还给出了一个不用创建继承属性对象并能检测定制属性的方法(System.Reflection.CustomAttributeData.GetCustomAttributes,最后说明了如何使用条件属性。 阅读全文
posted @ 2010-04-20 17:09 bengxia 阅读(299) 评论(0) 推荐(0)
摘要: 本章讨论委托,委托是一种类型安全的回调函数。委托可以回调静态方法或者实例方法。委托实际上继承至MulticastDelegate,委托可以链接在一起挨个调用。Action和Func是连个非常有用的泛型委托。然后介绍了在操作委托时使用一些C#的语法糖可以简化很多工作。最后演示了通过使用反射可以在运行时动态的创建委托并进行调用。 阅读全文
posted @ 2010-04-20 16:14 bengxia 阅读(304) 评论(0) 推荐(0)
摘要: 本章讲述的是数组的概念。CLR可以支持多种形式的数组。首先讲了如何初始化一个数组,然后讲了如何转换数组以及Array.Copy的用途和局限性,阐明了数组的一些潜在特性,然后讲了如何创建一个多维非零基的数组,并且比较了不同数组在访问性能上的差异,最后重点解释了不安全数组的特性和使用要点。 阅读全文
posted @ 2010-04-19 17:40 bengxia 阅读(304) 评论(0) 推荐(0)
摘要: 本章讲了枚举类型已经按位表示(Flags)的枚举类型。解释了枚举类型的工作原理,着重讲了枚举类型的几个方法以及给枚举类型使用Flags时需要注意的事项,最后讲了如果通过使用扩展方法来给枚举类型增加方法。 阅读全文
posted @ 2010-04-19 15:41 bengxia 阅读(279) 评论(0) 推荐(0)
摘要: 本章解释了在.Net中使用字符和字符串的工作机制。开始讨论了System.Char结构以及操作一个字符的不同方法,然后讲了System.String类型,注意String是不可变的,在什么情况下使用StringBuilder。在这些基础之上,还讲述了如何格式化对象ToString,以及如何高效可靠的在不同编码之间进行转换。最后演示了如何使用SecureString来安全的存储密码、信用卡等敏感信息。 阅读全文
posted @ 2010-04-13 16:46 bengxia 阅读(248) 评论(0) 推荐(0)
摘要: 本章讲述了interface和class之间的区别,示范了如何定义一个接口以及接口的继承, 解释了在调用接口时CLR的行为,说明了隐式接口实现与显示接口实现(EIMI)的区别,着重说明EIMI的用途。然后讲了如何定义泛型接口,使用泛型接口的好处,如何对泛型接口的泛型类型参数进行约束(逆变out与协变in)。还讲了如何实现不同接口的多个同名同签名的方法(使用EIMI支持)。最后对接口和基类的设计抉择给出了指导性建议。 阅读全文
posted @ 2010-04-12 15:07 bengxia 阅读(272) 评论(0) 推荐(0)
摘要: 本章讲了现代编程语言中的一个很重要的概念:泛型。泛型带来的好处:源代码保护;类型安全;更清爽的代码;更好的性能。解释了泛型(泛型类型,泛型接口,泛型委托,泛型方法)的实现机制和限制,然后介绍了如何对泛型类型进行验证和约束。 阅读全文
posted @ 2010-04-07 16:06 bengxia 阅读(276) 评论(0) 推荐(0)
摘要: CLR的事件模型是基于委托的,是一种特殊的委托,委托就是类型安全的回调函数。描述了如何在类型中暴露事件的步骤以及如何侦听事件,对比了如何安全的触发事件的不同方式。然后分析了编译器如何编译事件。 最后设计了一个EventSet来显示的实现事件以节约资源。 阅读全文
posted @ 2010-04-06 16:55 bengxia 阅读(237) 评论(0) 推荐(0)
摘要: 本章阐明了两种属性:无参数属性和参数化属性。 详细解释了AIP属性,匿名类型,Tuple的实现机制以及需要注意的地方。如何定义参数化的属性,以及如何重命名indexer和设置默认的indexer。对比了属性和字段的区别,以及在使用属性时的性能问题。最后讲了属性方法的访问修饰符,以及为何不能用泛型属性。 阅读全文
posted @ 2010-04-06 15:54 bengxia 阅读(325) 评论(0) 推荐(0)

无觅相关文章插件,快速提升流量