国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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# 常量模式的評論 (共 條)

分享到微博請遵守國家法律
松溪县| 方山县| 青岛市| 昔阳县| 正阳县| 昌宁县| 左权县| 新津县| 额敏县| 龙井市| 深圳市| 黄龙县| 西贡区| 图片| 张家口市| 怀宁县| 鲁山县| 思南县| 敦煌市| 白河县| 大荔县| 潞西市| 凯里市| 攀枝花市| 彝良县| 城固县| 顺平县| 永年县| 军事| 亚东县| 湄潭县| 商城县| 十堰市| 凤阳县| 内丘县| 洛扎县| 溆浦县| 天长市| 普陀区| 元氏县| 工布江达县|