淺談C# 中的可空值類型 null
C# 不允許把 null 賦給一個(gè)值類型的數(shù)據(jù)。在 C# 中,以下語句是非法的:
int a = null; // 非法
但是,利用 C# 定義的一個(gè)修飾符,可將一個(gè)變量聲明為一個(gè)可空(nullable)值類型。可空值類型在行為上與普通值類型相似,但可以將一個(gè) null 值賦給它。如下所示:
int? a = null; // 合法
當(dāng)把一個(gè)變量定義為可空值類型時(shí),該變量依然可以被賦值為 0,代碼如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 可空類型
{
class Program
{
static void Main(string[] args)
{
int? a = null;
Console.WriteLine("a = {0}", a);
a = 0;
Console.WriteLine("a = {0}", a);
}
}
}
運(yùn)行結(jié)果為:

可空類型有如下屬性:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int? i = null;
if (!i.HasValue) // 若 i 包含一個(gè)真正的值,則 i.HasValue 為true
{
i = 99;
}
Console.WriteLine(i.Value); // i 的值
}
}
}
// i.HasValue 比 i != null 走了不少冤枉路,i.Value 也比 i 更麻煩
// 但是當(dāng)使用更加復(fù)雜的值類型(struct)來聲明可空類型時(shí), .HasValue 和 .Value 就有了優(yōu)勢
相關(guān)文章
C#/VB.NET 在PDF中添加文件包(Portfolio)的方法
這篇文章主要介紹了C#/VB.NET 在PDF中添加文件包(Portfolio)的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-06-06
C#實(shí)現(xiàn)繪制鼠標(biāo)的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)繪制鼠標(biāo)的效果,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下2022-12-12
c# 實(shí)現(xiàn)子窗口關(guān)閉父窗口也關(guān)閉的方法
下面小編就為大家?guī)硪黄猚# 實(shí)現(xiàn)子窗口關(guān)閉父窗口也關(guān)閉的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01

