C# nullable<T> 用法小结
今天在园子里看到一个关于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> 用法小结的更多相关文章
- 转载:Hadoop排序工具用法小结
本文转载自Silhouette的文章,原文地址:http://www.dreamingfish123.info/?p=1102 Hadoop排序工具用法小结 发表于 2014 年 8 月 25 日 由 ...
- [No000010]Ruby 中一些百分号(%)的用法小结
#Ruby 中一些百分号(%)的用法小结 #这篇文章主要介绍了Ruby 中一些百分号(%)的用法小结,需要的朋友可以参考下 what_frank_said = "Hello!"#% ...
- C++ typedef用法小结 (※不能不看※)
C++ typedef用法小结 (※不能不看※) 第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不 ...
- 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)
函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...
- 1:CSS中一些@规则的用法小结 2: @media用法详解
第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下 at-rule ...
- 英语语法最终珍藏版笔记- 21it 用法小结
it 用法小结 it 在英语中的意思较多,用法较广,现总结如下. 一.it作句子的真正主语 1.it 指前面已经提到过的人或事物,有时指心目中的或成为问题的人或事物,作真正主语. 例如: What’s ...
- [转]ssh常用用法小结
ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...
- 结构体定义 typedef struct 用法详解和用法小结
typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请node 的变量时,需要这样写,stru ...
- typedef用法小结
typedef用法小结- - 注意:本文转自网络,版权归原作者所有. typedef typedef用法小结- - 这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等 ...
随机推荐
- 第五章:创建DbContext
一.DbContext介绍 DbContext是Entity Framework(EF)操作数据库的上下文网关(接口).我们对数据库的所有操作都是通过DbContext完成的.下面我们将讨论在code ...
- MyEclipse 中各种 libraries 的含义
MyEclipse 中各种 libraries 的含义 JRE System Library,Java EE 5 Libraries,Referenced Libraries这三个都是各 ...
- (HBase) Error: JAVA_HOME is not set and Java could not be found
请查看Linux系统环境变量 JAVA_HOME 是否设置.. 两种方法 env //查看全部系统变量 或者 echo $JAVA_HOME //查看JAVA_HOME变量值 如果没有设置则输出空 没 ...
- 使用VMware 安装Linux CentOS7
访问百度经验 http://jingyan.baidu.com/article/eae0782787b4c01fec548535.html 安装无忧..
- Orchard源码分析(5):Host相关(Orchard.Environment.DefaultOrchardHost类)
概述 Host 是应用程序域级的单例,代表了Orchard应用程序.其处理应用程序生命周期中的初始化.BeginRequest事件.EndRequest事件等. 可以简单理解为HttpApplicat ...
- MVC下分页的自定义分页一种实现
1.引言 在MVC开发中我们经常会对数据进行分页的展示.通过分页我们可以从服务端获取指定的数据来进行展示.这样既节约了数据库查询的时间也节约了网络传输的数据量.在MVC开发中使用的比较多的应该是MVC ...
- iwebshop二次开发(2)
设置模板为mini模式,类似于JSP中的sitemesh public $layout='site_mini'; 登录模块实现 function wuliu_login() { //如果已经登录,就跳 ...
- JavaScript基础整理(1)
最近读了<JavaScript权威指南>这本书,闲来无事对自认为重要的知识做了些整理,方便以后查阅. JavaScript中的最重要的类型就是对象,对象是名/值对的集合,或字符串到值映射的 ...
- recording just for inquiry in the future
auditd审计 相关命令有: auditd, auditctl, ausearch, aureport 相关文件: /etc/audit/auditd.conf, /etc/audit/audit. ...
- sql拼音简写函数
USE [HotelDB]GO /****** Object: UserDefinedFunction [dbo].[fn_GetPy] Script Date: 2016/1/4 13:29:13 ...