is işleci (C# başvurusu)
işleci, is
bir ifadenin sonucunun belirli bir türle uyumlu olup olmadığını denetler. Tür testi işleci hakkında bilgi için Tür testi is
ve atama işleçleri makalesinin is işleci bölümüne bakın. Aşağıdaki örnekte gösterildiği gibi, bir ifadeyi is
bir desenle eşleştirmek için işlecini de kullanabilirsiniz:
static bool IsFirstFridayOfOctober(DateTime date) =>
date is { Month: 10, Day: <=7, DayOfWeek: DayOfWeek.Friday };
Yukarıdaki örnekte işleç, bir ifadeyi is
iç içe sabit ve ilişkisel desenlere sahip bir özellik deseniyle eşleştirir.
işleci is
aşağıdaki senaryolarda yararlı olabilir:
Aşağıdaki örnekte gösterildiği gibi bir ifadenin çalışma zamanı türünü denetlemek için:
int i = 34; object iBoxed = i; int? jNullable = 42; if (iBoxed is int a && jNullable is int b) { Console.WriteLine(a + b); // output 76 }
Yukarıdaki örnekte bildirim deseninin kullanımı gösterilmektedir.
Aşağıdaki örnekte gösterildiği gibi öğesini denetlemek için
null
:if (input is null) { return; }
ile bir ifadeyi
null
eşleştirdiğinizde, derleyici kullanıcı aşırı yüklenmiş==
veya!=
işleç çağrılmadığı garanti eder.Aşağıdaki örnekte gösterildiği gibi null olmayan bir denetim yapmak için bir olumsuzlama deseni kullanabilirsiniz:
if (result is not null) { Console.WriteLine(result.ToString()); }
C# 11'le başlayarak, liste veya dizi öğelerini eşleştirmek için liste desenlerini kullanabilirsiniz. Aşağıdaki kod, dizilerde beklenen konumlardaki tamsayı değerlerini denetler:
int[] empty = []; int[] one = [1]; int[] odd = [1, 3, 5]; int[] even = [2, 4, 6]; int[] fib = [1, 1, 2, 3, 5]; Console.WriteLine(odd is [1, _, 2, ..]); // false Console.WriteLine(fib is [1, _, 2, ..]); // true Console.WriteLine(fib is [_, 1, 2, 3, ..]); // true Console.WriteLine(fib is [.., 1, 2, 3, _ ]); // true Console.WriteLine(even is [2, _, 6]); // true Console.WriteLine(even is [2, .., 6]); // true Console.WriteLine(odd is [.., 3, 5]); // true Console.WriteLine(even is [.., 3, 5]); // false Console.WriteLine(fib is [.., 3, 5]); // true
Not
İşleç tarafından is
desteklenen desenlerin tam listesi için bkz . Desenler.
C# dili belirtimi
Daha fazla bilgi için C# dil belirtiminin is işleci bölümüne ve Desen eşleştirme bölümüne bakın.