📜  C#2.0 可空类型nullable

📅  最后修改于: 2020-11-01 03:01:11             🧑  作者: Mango

C#可为空

在C#中,Nullable是一个允许类型将附加值保留为null的概念。换句话说,我们可以使变量为Nullable,因此它可以容纳其他null值。所有Nullable变量都是System.Nullable的实例结构。

当我们处理包含可能未分配值的元素的数据库时,Nullable的概念很有用。

C#提供了两种创建Nullable类型的不同方法。

  • 通过创建System.Nullable实例,
  • 通过使用?运算符

注意:我们无法创建引用类型变量的Nullable。

C#System.Nullable示例

在以下示例中,我们借助System.Nullable命名空间使Nullable成为可能。

// NullableExample2.cs

using System;
namespace CSharpFeatures
{
    class NullableExample2
    {
        static void Main(string[] args)
        {
            Nullable a = 10;
            Nullable d = 10.10;
            Nullable c = 'S';
            Nullable b = false;
            // Displaying value
            Console.WriteLine(a.Value);
            // assigning null values
            a = null;
            d = null;
            c = null;
            b = null;
            // Checking, does "a" contain value ?
            if (a.HasValue)
            {
                Console.WriteLine(a.Value);
            }
            if(a == null)
             Console.WriteLine("It contains null value");
        }
    }
}

输出:

通过使用以下命令来编译程序。

csc NullableExample2.cs

使用以下命令运行程序。

NullableExample2.exe

C#可空使用?运算子范例1

使用System.Nullable或?之间没有显着差异。运算符。我们可以根据自己的舒适程度使用任何人。

// NullableExample.cs

using System;
namespace CSharpFeatures
{
    class NullableExample
    {
        static void Main(string[] args)
        {
            // Integer nullable
            int? a = 10;
            // Float nullable
            double? f = 10.10;
            // Boolean nullable
            bool? b = false;
            // Char nullable
            char? c = 'S';
            // Checking value is present or not
            if (a.HasValue)
            {
                Console.WriteLine(a.Value);
            }
            else Console.WriteLine("a contains null value");
            // Assigning null value
            a = null;
            if (a.HasValue) // Checking again
            {
                Console.WriteLine(a.Value);
            }
            else Console.WriteLine("a contains null value");
        }
    }
}

输出:

10
a contains null value

C#可空使用?运算符示例2

using System;
namespace CSharpFeatures
{
    class NullableExample2
    {
        static void Main(string[] args)
        {
            Nullable a = 10;
            Nullable d = 10.10;
            Nullable c = 'S';
            Nullable b = false;
            // Displaying value
            Console.WriteLine(a.Value);
            // assigning null values
            a = null;
            d = null;
            c = null;
            b = null;
            // Checking, does "a" contain value ?
            if (a.HasValue)
            {
                Console.WriteLine(a.Value);
            }
            if(a == null)
             Console.WriteLine("It contains null value");
        }
    }
}

输出:

10
It contains null value