C# 常量模式
2023-01-14 22:19 作者:SunnieShine | 我要投稿
1、語法
常量模式針對于一個可能為 null
的數(shù)據(jù)類型的實例,判斷是否等于某個具體的常量。
is
后緊跟一個數(shù)值,這表示將 object
那么,為什么非得是 int
呢?因為這里的 3 這個字面量,默認是 int
類型的,因此這里在等價代碼里用的是 int
作為類型的判斷。
2、可空值類型的常量模式匹配是不必要的
另外,我們也可以對一個可空值類型使用這樣的常量模式判斷。
i is int p && p == 3 && j is int q && q == 3
這里,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
d == double.NaN
標簽: