一个Nullable类型就是基本类型加上一个"是否为null指示器"的合成类型。对于一个类型,如果既可以给他分配一个值,也可以给它分配null引用,我们就说这个类型是可空的。

  可空类型会多了两个属性

  1、HasValue  是否有值

  2、Value    获取值

  来看个DEMO,这个东西,真没什么好说的。就是容易忘记,如何判断。

public class Program
{
static void Main(string[] args)
{
int? avalue = null;
if (avalue.HasValue)
{
Console.WriteLine(avalue.Value);
}
else
{
Console.WriteLine("avalue的值为null"); //输出 avalue
} avalue = ;
if (avalue.HasValue)
{
Console.WriteLine(avalue.Value); //输出 10
}
else
{
Console.WriteLine("avalue的值为null");
} Console.ReadKey();
}
}

另外还有一种简便的判断方法:

public class Program
{
static void Main(string[] args)
{
Test(); //输出 0
Test(); //输出 5 //另外还有一个判断为空的方法,与HasValue类似:
int? i = null;
int k = i ?? ; //双问号的意思是,如果i为空则k=0,否则k=i
Console.WriteLine(k); //输出 0
i = ;
int j = i ?? ;
Console.WriteLine(j); //输出 5 Console.ReadKey();
} //4.0新特性,不传入参数时 i=0;
public static void Test(int? i = )
{
Console.WriteLine(i);
}
}

Nullable可空类型的更多相关文章

  1. C# Nullable可空类型

    一个Nullable类型就是基本类型加上一个"是否为null指示器"的合成类型.对于一个类型,如果既可以给他分配一个值,也可以给它分配null引用,我们就说这个类型是可空的. 可空 ...

  2. 实现Nullable 可空类型

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace demo ...

  3. 四、可空类型Nullable<T>到底是什么鬼

    值类型为什么不可以为空 首先我们都知道引用类型默认值都是null,而值类型的默认值都有非null. 为什么引用类型可以为空?因为引用类型变量都是保存一个对象的地址引用(就像一个url对应一个页面),而 ...

  4. 【C#】可空类型(Nullable)

    C# 可空类型(Nullable) C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. 例如,Nullable& ...

  5. 可空类型 Nullable<T>

    Nullable<T> 内部实现了显示和隐式转换 显示转换: public static explicit operator T(T? value) { return value.Valu ...

  6. 可空类型(Nullable)

    C# 单问号 ? 与 双问号 ?? ? : 单问号用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 NullAble 类型的. ...

  7. [No0000EA]C# 可空类型(Nullable)

    C# 可空类型(Nullable) C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. 例如,Nullable& ...

  8. 【C#】可空类型 NullAble<T>

    在实际编写代码时候 ,  会遇到很多场景, 需要将值置成空, 比如发货日期, 有可能是没有. 在没有可空类型之前, 程序都是用 魔值, 即为一个minValue或者常量, 来代表这个值为空, 也有用一 ...

  9. 雷林鹏分享:C# 可空类型(Nullable)

    C# 可空类型(Nullable) C# 可空类型(Nullable) C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 nu ...

随机推荐

  1. 架构师必须知道的26项PHP安全实践

    PHP是一种开源服务器端脚本语言,应用很广泛.Apache web服务器提供了这种便利:通过HTTP或HTTPS协议,访问文件和内容.配置不当的服务器端脚本语言会带来各种各样的问题.所以,使用php时 ...

  2. Latex 编辑器安装

    MiKTex + TexStudio 1. 下载安装MiKTex,从http://www.miktex.org/下载basic-miktex-2.9.5872-x64.exe,一路默认安装... 或者 ...

  3. HttpHandler使用Session

    继承自IHttpHandler的类要实现两个接口:ProcessRequest和IsReusable但还不能使用Session,要使用Session需要下面的步骤处理: 1.先引用System.Web ...

  4. Spring-boot官方案例分析之log4j

    Spring-boot官方案例分析之log4j 运行单元测试分析: @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfigur ...

  5. 每天一个Linux命令(6):rmdir命令

    rmdir命令用来删除空目录 注意:子目录被删除之前应该是空目录.就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录 ...

  6. oracle日常监控语句

    oracle常用的性能监控SQL语句 一.查询历史SQL: ---正在执行的SQL语句: select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT fro ...

  7. libcurl 基本使用

    libcurl,在HLS流媒体播放终端上提供HTTP下载的相关接口.具体的使用方式可以参见http://curl.haxx.se/libcurl/c/libcurl-tutorial.html,或博客 ...

  8. 使用unity3D生成项目(Easy Movie Texture)运行出现的问题

    运行后,首先报的错需要改  -fno-objc-arc 编译后出现的新的错.   需要将   CustomVideoPlayer.mm _lastFrameTimestamp = _curFrameT ...

  9. 【PTA 天梯赛】L2-016. 愿天下有情人都是失散多年的兄妹(深搜)

    呵呵.大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人.父母.祖父母.曾祖父母.高祖父母)则不可通婚.本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚? 输入格式: 输入 ...

  10. 一道SQL面试题——表行列数据转换(表转置)

    SQL语句如下: select country, sum(case when type='A' then money end) as A, sum(case when type='B' then mo ...