zoukankan      html  css  js  c++  java
  • C# 可空值类型

    一个值类型永远不可能为null,但是当数据库中的某列数据允许为空时,或者另一种语言中的数据类型(引用类型)对应C#的是值类型,当需要和另外的语言交互时,就有可能需要处理空值的问题。

    所以,CLR中引用了可空类型 System.Nullable<T>
       Nullable<int> x = 6;
       Nullable<int> y = null;
       int? z = null;//等价于 Nullable<int>
       Console.WriteLine("{0}:{1}", x.HasValue, x.HasValue);
       Console.WriteLine("{0}:{1}", y.HasValue, y.GetValueOrDefault());
       Console.WriteLine("{0}:{1}", z.HasValue, z.GetValueOrDefault());

    空接合操作符

    ??表示如果操作符左边的数不为null就返回该操作数,否则返回右边的操作符。空接合操作符不但可以作用于引用类型还可以作用于值类型。

    利用好空接合操作符,我们可以写出更为优雅的代码。

        int? x = null;
        int y = x ?? 5;
    Func<string> output = () => DoSome() ?? "effective";

    可空类型的GetType()

      int? x = 6;
      Console.WriteLine(x.GetType());//x.GetType()返回的并不是System.Nullable<Int32>而是System.Int32
  • 相关阅读:
    hdu2089 不要62 (数位dp)
    LightOJ 1140
    在n到m中 有多少个1 (数位dp)
    Frequent Subsets Problem 状态压缩 判断出现的次数
    LightOj 1215
    LightOJ 1197
    Spring 知识点提炼
    设计模式—访问者模式
    设计模式—模板模式
    设计模式—策略模式
  • 原文地址:https://www.cnblogs.com/SuperMetalMax/p/6207023.html
Copyright © 2011-2022 走看看