摘要: 本章主要讨论了两个概念:Hosting和AppDomains。Hosting允许任何应用程序利用CLR的特性;AppDomain是进程中的一个逻辑区域,一个进程可以加载多个AppDomain,一个AppDomain中可以加载多个Assembly,AppDomain还可以被卸载。AppDomain可以为插件应用程序等提供很好的隔离性和安全性。首先解释了什么是CLR Hosting,什么是AppDomain,如何加载卸载监视AppDomain,然后讲了宿主怎样使用AppDomain,最后讲了高级的宿主控制方法以及如何写出健壮的宿主应用程序。 阅读全文
posted @ 2010-05-21 15:50 bengxia 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 本章的内容比较多,主题就是垃圾收集。讲述了托管应用程序如何构造对象,如何控制这些对象的生命期,这些对象占用的内存怎样回收。首先介绍了垃圾收集器的一些基本概念,然后解释了垃圾收集算法,接着讲了垃圾收集如何进行以及如何调试。重点讲了Finalization是怎么进行的,如何使用Finalizer来释放资源和SafeHandle的用法,通过继承自CriticalFinalizerObject类型来保证终止化被执行,隆重推出了Dispose模式。还介绍了C#中using的用法,如何手动的控制对象的生命期,如何复活一个对象。解释了代龄是什么,在使用本地资源时如何利用垃圾收集器的特性。还讲了如何通过使用MemoryFailPoint来提高内存敏感算法的健壮性。另外还讲了如何通过编程的方法来控制垃圾收集器运行,说明了什么是安全点(safe point)以及CLR怎样劫持线程以进行垃圾回收。最后讲了垃圾收集器的工作模式,CLR对待大对象的处理方法,以及怎样监视垃圾收集器的工作。 阅读全文
posted @ 2010-05-10 14:20 bengxia 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 本章的主要内容是关于错误处理和如何增强可靠性的。首先,定义了什么是错误,强调不能用异常来做流程处理。然后,讲了如何发现错误并进行处理。解释了CLR异常处理的机制,详细讲了System.Exception基础,FCL的异常类,以及如何正确的抛出异常。还演示了如何定义自己的异常,这是一个比较单调易错的工作。接着讲了如何提高生产效率并增强可靠性,给出了使用异常的最佳实践指南。然后讲了如何对待未处理的异常,以及如何调试异常。分析了异常处理的性能问题,阐述了CER的概念和用途。最后讲解了如何使用代码契约来提供程序的鲁棒性,并推荐了一些常用的工具。 阅读全文
posted @ 2010-04-29 15:31 bengxia 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 本章讲了如何使用Nullable的值类型,为什么Nullabe?其中一个理由就是与数据库内容表示的一致性。首先讲了如何使用Nullable的值类型,然后讲了??操作符,最后讲了CLR对Nullable提供了哪些特别的支持。 阅读全文
posted @ 2010-04-23 16:46 bengxia 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 定制属性(Custom Attribute)是.NET框架中的一个重要革新。定制属性可以允许你以申明的方式标注代码结构。本章先讲了如何使用Attribute以及如何定义一个定制属性,然后解释了Attribute的构造器、字段、属性的数据类型限制,还演示了如何检测类型中使用的定制属性。特别说明了System.Attribute的Equals、Match的内部实现并建议用户改写这些方法以避免反射。还给出了一个不用创建继承属性对象并能检测定制属性的方法(System.Reflection.CustomAttributeData.GetCustomAttributes,最后说明了如何使用条件属性。 阅读全文
posted @ 2010-04-20 17:09 bengxia 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 本章讨论委托,委托是一种类型安全的回调函数。委托可以回调静态方法或者实例方法。委托实际上继承至MulticastDelegate,委托可以链接在一起挨个调用。Action和Func是连个非常有用的泛型委托。然后介绍了在操作委托时使用一些C#的语法糖可以简化很多工作。最后演示了通过使用反射可以在运行时动态的创建委托并进行调用。 阅读全文
posted @ 2010-04-20 16:14 bengxia 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 本章讲述的是数组的概念。CLR可以支持多种形式的数组。首先讲了如何初始化一个数组,然后讲了如何转换数组以及Array.Copy的用途和局限性,阐明了数组的一些潜在特性,然后讲了如何创建一个多维非零基的数组,并且比较了不同数组在访问性能上的差异,最后重点解释了不安全数组的特性和使用要点。 阅读全文
posted @ 2010-04-19 17:40 bengxia 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 本章讲了枚举类型已经按位表示(Flags)的枚举类型。解释了枚举类型的工作原理,着重讲了枚举类型的几个方法以及给枚举类型使用Flags时需要注意的事项,最后讲了如果通过使用扩展方法来给枚举类型增加方法。 阅读全文
posted @ 2010-04-19 15:41 bengxia 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 本章解释了在.Net中使用字符和字符串的工作机制。开始讨论了System.Char结构以及操作一个字符的不同方法,然后讲了System.String类型,注意String是不可变的,在什么情况下使用StringBuilder。在这些基础之上,还讲述了如何格式化对象ToString,以及如何高效可靠的在不同编码之间进行转换。最后演示了如何使用SecureString来安全的存储密码、信用卡等敏感信息。 阅读全文
posted @ 2010-04-13 16:46 bengxia 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 本章讲述了interface和class之间的区别,示范了如何定义一个接口以及接口的继承, 解释了在调用接口时CLR的行为,说明了隐式接口实现与显示接口实现(EIMI)的区别,着重说明EIMI的用途。然后讲了如何定义泛型接口,使用泛型接口的好处,如何对泛型接口的泛型类型参数进行约束(逆变out与协变in)。还讲了如何实现不同接口的多个同名同签名的方法(使用EIMI支持)。最后对接口和基类的设计抉择给出了指导性建议。 阅读全文
posted @ 2010-04-12 15:07 bengxia 阅读(267) 评论(0) 推荐(0) 编辑
无觅相关文章插件,快速提升流量