C# 不允許把 null 賦給一個值類型的數據。在 C# 中,以下語句是非法的:
但是,利用 C# 定義的一個修飾符,可將一個變量聲明為一個可空(nullable)值類型。可空值類型在行為上與普通值類型相似,但可以將一個 null 值賦給它。如下所示:
當把一個變量定義為可空值類型時,該變量依然可以被賦值為 0,代碼如下所示:
namespace 可空類型
{
class Program
{
static void Main(string[] args)
{
int? a = null;
Console.WriteLine("a = {0}", a);
a = 0;
Console.WriteLine("a = {0}", a);
}
}
}
運行結果為:
可空類型有如下屬性:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int? i = null;
if (!i.HasValue) // 若 i 包含一個真正的值,則 i.HasValue 為true
{
i = 99;
}
Console.WriteLine(i.Value); // i 的值
}
}
}
// i.HasValue 比 i != null 走了不少冤枉路,i.Value 也比 i 更麻煩
// 但是當使用更加復雜的值類型(struct)來聲明可空類型時, .HasValue 和 .Value 就有了優勢
|
新聞熱點
疑難解答