C#中可空類型的使用
一、什么是可空類型
可空類型允許我們創(chuàng)建一個(gè)值類型變量并且可以標(biāo)記為有效或無(wú)效,這樣我們就可以有效地將值類型設(shè)置為null。可空類型總是基于另外一個(gè)叫做基礎(chǔ)類型的已經(jīng)被聲明的類型。
可以從任何值類型創(chuàng)建可空類型。不能從引用類型或其他可空類型創(chuàng)建可空類型。不能在代碼中顯示聲明可空類型,只能聲明可空類型的變量。編譯器會(huì)使用泛型隱式地創(chuàng)建可空類型。
舉例:聲明一個(gè)可空int類型的變量

產(chǎn)生的可空類型如下:

必須確保使用可空類型時(shí),該可空變量不是null

可空類型和相應(yīng)的非可空類型可以輕松轉(zhuǎn)換:

二、為可空類型賦值
可以將以下三種類型的值賦給可空變量:
基礎(chǔ)類型的值同一可空類型的值null

三、使用空接合運(yùn)算符
- 空接合運(yùn)算符允許我們?cè)诳煽疹愋妥兞繛閚ull時(shí)返回一個(gè)值給表達(dá)式。(可空類型也可以使用標(biāo)準(zhǔn)運(yùn)算符和比較運(yùn)算符)
- 空接合運(yùn)算符由兩個(gè)連續(xù)的問(wèn)號(hào)組成。
- 第一個(gè)操作數(shù)是可空類型的變量。
- 第二個(gè)操作數(shù)是基礎(chǔ)類型的不可空值。
- 在運(yùn)行時(shí),如果第一個(gè)操作數(shù)運(yùn)算后為null,將返回第二個(gè)操作數(shù)作為結(jié)果。
static void Main(string[] args)
{
int? myInt = null;
Console.WriteLine("myInt:{0}", myInt ?? -1);
myInt = 6;
Console.WriteLine("myInt:{0}", myInt ?? -1);
}
四、使用可空用戶自定義類型
1. 創(chuàng)建用戶自定義值類型
struct MyStruct //聲明結(jié)構(gòu)
{
public int X;
public int Y;
public MyStruct(int x, int y)
{
X = x;
Y = y;
}
}2.將值類型轉(zhuǎn)換為可空類型
static void Main(string[] args)
{
MyStruct? ms = new MyStruct(6,7);//方式1,使用?
MyStruct myStruct = new MyStruct(6,7);
Nullable<MyStruct> ms3 = new Nullable<MyStruct>(myStruct);//使用Nullable創(chuàng)建的可空類型
}3.使用自定義值類型轉(zhuǎn)換后的可空類型,可空類型其數(shù)據(jù)只能通過(guò)Value來(lái)訪問(wèn)。

struct MyStruct //聲明結(jié)構(gòu)
{
public int X;
public int Y;
public MyStruct(int x, int y)
{
X = x;
Y = y;
}
}
internal class Program
{
static void Main(string[] args)
{
MyStruct ms1 = new MyStruct(6,7);//值類型
MyStruct? ms2 = new MyStruct(6,7);//使用?創(chuàng)建的可空類型
MyStruct myStruct = new MyStruct(6,7);
Nullable<MyStruct> ms3 = new Nullable<MyStruct>(myStruct);//使用Nullable創(chuàng)建的可空類型
Console.WriteLine("X={0},Y={1}", ms1.X, ms1.Y);
Console.WriteLine("X={0},Y={1}", ms2.Value.X, ms2.Value.Y);
Console.WriteLine("X={0},Y={1}", ms3.Value.X, ms3.Value.Y);
}
}、到此這篇關(guān)于C#中可空類型的使用的文章就介紹到這了,更多相關(guān)C# 可空類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c#實(shí)現(xiàn)斷點(diǎn)續(xù)傳功能示例分享
這篇文章主要介紹了c#實(shí)現(xiàn)的斷點(diǎn)續(xù)傳功能示例,斷點(diǎn)續(xù)傳就是在上一次下載時(shí)斷開的位置開始繼續(xù)下載。在HTTP協(xié)議中,可以在請(qǐng)求報(bào)文頭中加入Range段,來(lái)表示客戶機(jī)希望從何處繼續(xù)下載,下面是示例,需要的朋友可以參考下2014-03-03
Unity實(shí)現(xiàn)簡(jiǎn)單換裝系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)簡(jiǎn)單換裝系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04

