C#基础篇-可空类型(Nullable)

C#:基础编程篇

本节知识
在这里插入图片描述

一:Nullable类


①:支持可分配有 null 的值类型。 无法继承此类。
②:命名空间:System
程序集:System.Runtime.dll, mscorlib.dll, netstandard.dll
在这里插入图片描述
③:方法
Nullable类

例如:

            int ?num1 = null;
            double? num2 = new double?();
            if(num1==null)
            {
                Console.WriteLine("num1为null");
            }
            if(num2==null)
            {
                Console.WriteLine("num2为null");
            }

运行结果:
在这里插入图片描述

备注:默认情况下,所有引用类型(如 String)都可以为 null,但所有值类型(如 Int32)都不是,在C#和 Visual Basic 中,通过在值类型后使用 ? 表示法,将值类型标记为可以为 null。


二:Nullable < T >结构体


Nullable 类提供 Nullable 结构互补支持。
①:表示可分配有 null 的值类型。
②:命名空间:System
程序集:System.Runtime.dll, mscorlib.dll, netstandard.dll
Nullable结构体
③:构造函数,属性,方法,运算符
总结
④:练习

  Nullable<int> num3 = new Nullable<int>(3);
        if (num3.HasValue)
        {
            Console.WriteLine(num2.Value);
        }
        else
        {
            Console.WriteLine("该值不是一个有效值");
       }

运行结果:
在这里插入图片描述

注意:Nullable.HasValue为false时,尝试访问 Value 属性将引发 InvalidOperationException异常。

       Nullable<int> num2 = new Nullable<int>();
            Console.WriteLine(num2.Value);

异常
⑤:装箱和取消装箱
装箱和取消装箱
⑥:int?和Nullable< int >是等价的

    Nullable<int> num2 = new Nullable<int>(3);
            int? num3=3;
            Console.WriteLine(num2.Value+";"+num3.Value);
            Console.ReadLine();

运行结果:
运行结果
源代码
源代码


三:Nullable适用版本


适用版本


四:??是什么意思

合并运算符

        int? num1 = null;
        int? num2 = 6;
        int num3;
        num3 = num1 ?? 3;//这里3就是预设值
        Console.WriteLine("num3={0}",num3);
        num3 = num2 ?? 3;
        Console.WriteLine("num3={0}", num3);
        Console.ReadLine();

运行结果:
在这里插入图片描述
备注:??的作用,就是防止出现null的情况,引用了一个预设值,如果我给的值是null就引用预设值,如果我给的值不是null,就用我给的值。


相关链接:
菜鸟教程
Nullable< T > ApI

发布了49 篇原创文章 · 获赞 17 · 访问量 4302

猜你喜欢

转载自blog.csdn.net/weixin_42753193/article/details/104845245
今日推荐