CLR Via C# 3rd 阅读摘要 -- Chapter 19 – Nullable Value Types

C#'s Support for Nullable Value Types

  1. 原来C#中的值类型是不可以 = null的,现在如果定义Int32? x = null;类型后面价格?就可以了;
  2. 实际上是多了一个类型:public struct Nullable<T> where T : struct;
  3. Int32? 在语义上等同于Nullable<Int32>;
  4. C#的操作符对null的处理;
  5. 为了管理nullable的实例,生成了一大堆代码。

C#'s Null-Coalescing Operator

  1. null-coalescing操作符(??)。Int32? x = b ?? 123。如果b = null,那么 x = 123,否则 x = b;
  2. ??可以很好的用在组合情况下。

The CLR Has Special Support for Nullable Value Types

  1. 装箱Nullable的值类型,当装箱Nullable的值类型时,会检查如果为null,啥也不做返回null,否则装箱;
  2. 拆箱Nullable的值类型,如果引用为null设置值为null,否则拆箱;
  3. 在Nullable值类型上调用GetType,会用实际类型代替Nullable返回;
  4. 在Nullable值类型上调用接口方法,虽然Nullable没有实现,但是如果值类型实现了接口就可以调用。

本章小结

   本章讲了如何使用Nullable的值类型,为什么Nullabe<T>?其中一个理由就是与数据库内容表示的一致性。首先讲了如何使用Nullable的值类型,然后讲了??操作符,最后讲了CLR对Nullable提供了哪些特别的支持。

posted @ 2010-04-23 16:46  bengxia  阅读(170)  评论(0编辑  收藏  举报
无觅相关文章插件,快速提升流量