📅  最后修改于: 2020-11-01 03:01:11             🧑  作者: Mango
在C#中,Nullable是一个允许类型将附加值保留为null的概念。换句话说,我们可以使变量为Nullable,因此它可以容纳其他null值。所有Nullable变量都是System.Nullable的实例
当我们处理包含可能未分配值的元素的数据库时,Nullable的概念很有用。
C#提供了两种创建Nullable类型的不同方法。
注意:我们无法创建引用类型变量的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
使用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