今天在园子里看到一个关于C#中对于可空类型的描述的帖子,感觉不错于是自己写了个小例子尝试下。

在C#中,对于可空类型描述为:Nullable<T>, 它表示该类型是可以为空的一个类型。它被定义为一个结构(struct)而非一个类(class)... 在这里用一个小Demo来看看它的用法

int? intTest;
int? nullIntValue = new Nullable<int>();

intTest = 999;

try
{
  //1. output an interger value
  Console.WriteLine("output an interger value: {0}", intTest);

  //2. output an boxed (int) value
  object boxedObj = intTest;
  Console.WriteLine("output an boxed integer type: {0}", boxedObj.GetType());

  //3. output an unboxed int value
  int normalInt = (int)boxedObj;
  Console.WriteLine("output an unboxed integer value: {0}", normalInt);

  //4. output an nullable object
  object nullObj = nullIntValue;
  Console.WriteLine("output an nullable equals null ? : {0}", (nullObj == null));

  ////output an nullable value (Error: non refferenced)
  //int nullIntTest = (int)nullObj;
  //Console.WriteLine("output an nullable value: {0}", nullIntTest);

  //5. output an value of nullable object
  Nullable<int> nullIntTest = (Nullable<int>)nullObj;
  Console.WriteLine("Unboxed an nullable value: {0}", nullIntTest);  

  //int nullIntTest = (int)nullObj;
  //Console.WriteLine("Unboxed an nullable value: {0}", nullIntTest);

  
}
catch (Exception ex)
{
  Console.WriteLine("Error happend: {0}", ex.Message);
}

Console.ReadKey();

输出结果如下:

在上面这段代码中,我尝试了将一个不为空的可空值类型实例装箱后的值分别拆箱为普通的值类型以及可空值类型(1,2,3)。之后,我又将一个没有值的可空值类型实例testNull装箱为一个空引用,之后又成功的拆箱为另一个没有值的可空值类型实例(4,5)。如果此时我们直接将它拆箱为一个普通的值类型,编译器会抛出一个NullReferenceException异常。。。

C# nullable<T> 用法小结的更多相关文章

  1. 转载:Hadoop排序工具用法小结

    本文转载自Silhouette的文章,原文地址:http://www.dreamingfish123.info/?p=1102 Hadoop排序工具用法小结 发表于 2014 年 8 月 25 日 由 ...

  2. [No000010]Ruby 中一些百分号(%)的用法小结

    #Ruby 中一些百分号(%)的用法小结 #这篇文章主要介绍了Ruby 中一些百分号(%)的用法小结,需要的朋友可以参考下 what_frank_said = "Hello!"#% ...

  3. C++ typedef用法小结 (※不能不看※)

    C++ typedef用法小结 (※不能不看※) 第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不 ...

  4. 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)

    函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...

  5. 1:CSS中一些@规则的用法小结 2: @media用法详解

    第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下     at-rule ...

  6. 英语语法最终珍藏版笔记- 21it 用法小结

    it 用法小结 it 在英语中的意思较多,用法较广,现总结如下. 一.it作句子的真正主语 1.it 指前面已经提到过的人或事物,有时指心目中的或成为问题的人或事物,作真正主语. 例如: What’s ...

  7. [转]ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

  8. 结构体定义 typedef struct 用法详解和用法小结

    typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请node 的变量时,需要这样写,stru ...

  9. typedef用法小结

    typedef用法小结- - 注意:本文转自网络,版权归原作者所有. typedef typedef用法小结- - 这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等 ...

随机推荐

  1. jQuery 根据城市时区,选择对应的即时时间

    我们的CRM系统中,下面是用jQuery 做了个时区小插件 如图: // 时区城市//$(function(){//所有城市和时间静态输出//var cityID = 170; //中国,北京//va ...

  2. 安装 SQL server 2008 R2

    操作系统:WIN7 问题: The Windows Installer Service could not be accessed. This can occur if the Windows Ins ...

  3. CF456B Fedya and Maths 找规律

    http://codeforces.com/contest/456/problem/B CF#260 div2 B Fedya and Maths Codeforces Round #260 B. F ...

  4. javascript位运算

    javascript作为一门高级语言,他尽量让开发人员减少思考底层的硬件工作原理,而将精力集中在逻辑开发的层面.不过,不论这门语言多么高级,我们必须知道数据依然以bits的形式存储,有时候我们会直接与 ...

  5. 深度剖析:如何实现一个 Virtual DOM 算法

    本文转载自:https://github.com/livoras/blog/issues/13 目录: 1 前言 2 对前端应用状态管理思考 3 Virtual DOM 算法 4 算法实现 4.1 步 ...

  6. Python网络socket学习

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

  7. SQL Server数据库邮件配置

    一.数据库邮件介绍 数据库邮件是从SQL Server数据库引擎中发送电子邮件的企业解决方案,通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件.邮件中可以包含查询结果,还可以包含来自网络中任何 ...

  8. C#中页面之间传值传参的六种方法

    QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于传递数组或对象的话,就不能用这 ...

  9. HDOJ 1561 The more, The Better

    树形DP.... The more, The Better Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  10. OC第四节——NSDictionary和NSMutableDictionary

    NSDictionary    1.什么是字典        字典是也是一种集合结构,功能与我们现实中的字典工具一样    2.字典的元素是什么        任意类型的对象地址构成键值对    3. ...