zoukankan      html  css  js  c++  java
  • C# 可空类型(Nullable)

    C# 可空类型(Nullable)

    C# 单文号? 与 双问号??

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

    int? i=3;
    等同于
    Nullable<int> i = new Nullable<int>(3);
    
    int i; //默认值0
    int?i; //默认值null

    ?? :双问号 可用于判断一个变量在位null时返回一个指定的值。

    接下来详细说明。


    C# 可空类型(Nullable)

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

    例如,Nullable<int32>,读作“可空的int32”,可以被赋值为-2,147,483,648到2,147,483,647之间的任意值,也可以被赋值为null值。

    类似于,Nullable<bool>变量可以被赋值为true或false或者null。

    声明一个nullable类型(可控类型)的语法如下:

    <data_type>?<variable_name> = null;

    下面实例演示了可空数据类型的用法:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace nullable
    {
        class Program
        {
            static void Main(string[] args)
            {
                int? num1 = null;
                int? num2 = 45;
                double? num3 = new double?();
                double? num4 = 2.1415926;
                bool? boolval = new bool?();
    
                Console.WriteLine($"显示可空类型{num1},{num2},{num3},{num4}");
                Console.WriteLine($"一个可空的布尔值:{boolval}");
                Console.ReadLine();
            }
        }
    }

    当上面的代码被编译和执行时,它会产生下列结果:

    Null 合并运算符(??)

    Null合并运算符用于定义可空类型和引用类型默认值。Null合并运算符为类型转换定义了一个预设值,以防可空类型的值为Null。

    Null合并运算符把操作数类型隐式转换为另一个可空(或不可空)的值类型的操作数的类型。

    如果一个操作数的值问null,则运算符翻译第二个操作数的值,否则返回第一个操作数的值。下面的实例显示了这一点:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace nullable
    {
        class Program
        {
            static void Main(string[] args)
            {
                double? num1 = null;
                double? num2 = 3.1415926;
                double num3;
                num3 = num1 ?? 5.55;
                Console.WriteLine($"num3的值:{num3}");
                num3 = num2 ?? 5.34;
                Console.WriteLine($"num3的值:{num3}");
                Console.ReadLine();
            }
        }
    }

    当上面的代码被编译和执行时,他会产生下列结果:

  • 相关阅读:
    合并两个有序数组
    删除排序数组中的重复项 II
    对称二叉树
    相同的树
    二叉树的最大深度
    从前序与中序遍历序列构造二叉树
    vue简单案例_动态添加删除用户数据
    对vue的初步学习(一)
    关于java for循环常见练习题
    关于java中循环的学习
  • 原文地址:https://www.cnblogs.com/ljknlb/p/11734379.html
Copyright © 2011-2022 走看看