优秀的编程知识分享平台

网站首页 > 技术文章 正文

C#编程零基础到入门学习-C#可空类型(4-2)

nanyue 2024-07-19 23:56:46 技术文章 31 ℃


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

例如:

Nullable< Int32 >:读作"可空的 Int32"

赋值范围:可以被赋值为 -2,147,483,6482,147,483,647 之间的任意值,也可以被赋值为 null 值。

类似的,Nullable< bool > 变量可以被赋值为 truefalsenull

在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。

数据库中的布尔型字段可以存储值 truefalse,或者,该字段也可以未定义。

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

    < data_type> ? <variable_name> = null;
//源代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace VoidType
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int? num1 = null;
            int? num2 = 46;
            double? num3 = new double?();
            double? num4 = 3.14159;
            bool? boolval = new bool?();
            // 显示值
            Console.WriteLine("显示可空类型的值: {0}, {1}, {2}, {3}",
                               num1, num2, num3, num4);
            Console.WriteLine("一个可空的布尔值: {0}", boolval);
            Console.ReadLine();
        }
    }
}
显示可空类型的值: , 46, , 3.14159
一个可空的布尔值:

Null 合并运算符( ?? )

Null 合并运算符用于定义可空类型和引用类型的默认值。

Null 合并运算符为类型转换定义了一个预设值,以防可空类型的值为 Null

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

如果第一个操作数的值为 null,则运算符返回第二个操作数的值,否则返回第一个操作数的值。

示例源代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UnionOperation
{
    internal class Program
    {
        static void Main(string[] args)
        {
            double? num1 = null;
            double? num2 = 3.1415926;
            double num3;
            num3 = num1 ?? 5.347;
            Console.WriteLine("num3 的值: {0}", num3);
            num3 = num2 ?? 5.347;
            Console.WriteLine("num3 的值: {0}", num3);
            Console.ReadLine();
        }
    }
}
num3 的值: 5.347
num3 的值: 3.1415926


最近发表
标签列表