嗨,今天要講的是也很常見到的關鍵字: is
is
用於檢查某個變數是否相容於某個類別 (或型別)。
下面是微軟的官方範例,展示了 Nullable 的 int
型別變數、被封裝成 object
的 int
變數,使用 is
判斷,都能正確識別是 int
。在 C# 7.0 中,當判斷是 int
時,能用 Declaration Pattern 直接宣告為變數 a
和 b
。
int i = 23;
object iBoxed = i;
int? jNullable = 7;
if (iBoxed is int a && jNullable is int b)
{
Console.WriteLine(a + b); // 輸出 30
}
除此之外,也可以用來檢查某個變數是不是 null
,而在 C# 9.0 以後,還可以加入 not
做反向檢查 (套用 Negation Pattern):
if (a is null)
{
// ……
}
if (a is not null)
{
// ……
}
is
還有幾種在新版本 C# 可辨識的 pattern,請查閱以下的參考資料。
參考資料: