五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C# 類型模式

2023-01-15 10:52 作者:SunnieShine  | 我要投稿

1、語法

與其單獨(dú)講類型模式,還不如讓你先明白,聲明模式的那個(gè)類型,就是類型模式。

所以,你干脆理解成這樣:“聲明模式 = 類型模式(就是這個(gè)類型)+ 變量定義”。但是,單獨(dú)提出來說,是有原因的。

2、不支持可空類型的類型模式

C# 8 開始擁有可空引用類型,而在 C# 2 開始則擁有可空值類型。這兩種數(shù)據(jù)類型都帶有 ? 標(biāo)記類型是可空的。不過,這些類型并不能使用到類型模式之中。

這兩種都是錯(cuò)誤的。原因很簡(jiǎn)單:因?yàn)?is 是匹配類型,因此它必須得是這個(gè)類型。而既然都是這個(gè)類型的數(shù)據(jù)了,那么為何還去匹配一個(gè)可空類型呢?假設(shè) objint 類型的數(shù)據(jù),那么 int is int? 合理嗎?顯然不合理。int is int 才合理。那 null is int? 嗎?null 是沒數(shù)值的可空類型的默認(rèn)數(shù)值,它不包含任何數(shù)值,因此 is 匹配它是沒有意義的。

正是因?yàn)檫@些原因,你無法在 is 后使用和聲明可空類型作為類型模式——因?yàn)槭菦]有意義的。

3、聲明模式棄元

在 C# 里,switch 語句可以專門對(duì)一個(gè)不知道是什么類型的東西作模式匹配:

這里,C# 也是允許的。可問題在于,arr、enumerable 等變量如果不用,我們無法去掉:C# 9 之前,這個(gè)變量是不可省去的:即使不用,你也得寫棄元符號(hào):_。

不過,從 C# 9 開始,棄元符號(hào)就可以不寫了。于是乎,模式匹配就可以簡(jiǎn)寫成真正的類型模式了:


C# 類型模式的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
新巴尔虎右旗| 始兴县| 忻州市| 宣汉县| 东丽区| 彰化市| 汝城县| 长丰县| 乌拉特前旗| 定州市| 临猗县| 德庆县| 同江市| 郁南县| 民勤县| 晋中市| 柳州市| 阿荣旗| 新干县| 营山县| 龙岩市| 银川市| 河南省| 滁州市| 峡江县| 元阳县| 双柏县| 丹寨县| 济宁市| 井研县| 乐山市| 南岸区| 渝中区| 虞城县| 吉安县| 庄浪县| 灌云县| 衡水市| 大城县| 双鸭山市| 定边县|