最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

C# 常量模式

2023-01-14 22:19 作者:SunnieShine  | 我要投稿

1、語法

常量模式針對于一個可能為 null 的數(shù)據(jù)類型的實例,判斷是否等于某個具體的常量。

在這段代碼下,我們直接在 is 后緊跟一個數(shù)值,這表示將 object 進行類型和數(shù)值的雙重判斷。等價的代碼是這樣的:

那么,為什么非得是 int 呢?因為這里的 3 這個字面量,默認是 int 類型的,因此這里在等價代碼里用的是 int 作為類型的判斷。

2、可空值類型的常量模式匹配是不必要的

另外,我們也可以對一個可空值類型使用這樣的常量模式判斷。

比如這個格式。這個格式很明顯等價于 i is int p && p == 3 && j is int q && q == 3。正是因為寫起來很長,所以我們才會使用這樣的模式匹配來簡化代碼。不過,這個模式匹配是不必要的。早在可空值類型出現(xiàn)的時候,它們自身的等號和不等號的邏輯就已經(jīng)可具有這樣的判斷了。換句話說,你寫成這樣,和模式匹配的格式將是一樣的等價代碼。

這里,i 就算是 null,也不會影響判斷 i == 3 的結(jié)果。大不了結(jié)果為 false 就是了。

3、double.NaN 的特殊處理

假設我們用 is double.NaN 對一個對象進行數(shù)值匹配:

這表示什么?d == double.NaN 嗎?雖然好像沒啥毛病,但是大家也都知道,double 類型的等號比較是嚴格的,因此很多時候比較起來都不一定相等。因此,C# 的 API 有一個 double.IsNaN 方法在專門對這個情況進行判斷。而此時的 d is double.NaN 就剛好是在調(diào)用此方法。也就是說,這個 if 條件會被翻譯為這樣:

是的。類型判斷后,然后直接調(diào)用此方法來判斷,而并非是 d == double.NaN。

C# 常量模式的評論 (共 條)

分享到微博請遵守國家法律
博爱县| 镇原县| 涿鹿县| 河津市| 宣化县| 云龙县| 茶陵县| 固始县| 汕头市| 靖西县| 弥勒县| 轮台县| 杭锦后旗| 弥勒县| 韩城市| 澄江县| 巴林左旗| 长春市| 东乡族自治县| 阳高县| 鸡泽县| 东乌珠穆沁旗| 游戏| 攀枝花市| 遂川县| 平潭县| 贵港市| 延安市| 从化市| 天峨县| 达拉特旗| 龙南县| 昌图县| 梁平县| 荔浦县| 台南市| 泗阳县| 大城县| 吴忠市| 天气| 怀宁县|