Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der
Der is Operator überprüft, ob das Ergebnis eines Ausdrucks mit einem bestimmten Typ kompatibel ist. Informationen zum Typtestoperator is finden Sie im Abschnitt " Operator " des Artikels " Typtests und Umwandlungsoperatoren ". Sie können den is Operator auch verwenden, um einen Ausdruck mit einem Muster abzugleichen, wie das folgende Beispiel zeigt:
static bool IsFirstFridayOfOctober(DateTime date) =>
date is { Month: 10, Day: <=7, DayOfWeek: DayOfWeek.Friday };
Im vorherigen Beispiel stimmt der is Operator mit einem Ausdruck mit einem Eigenschaftenmuster mit geschachtelten Konstanten - und relationalen Mustern überein.
Der is Operator kann in den folgenden Szenarien nützlich sein:
So überprüfen Sie den Laufzeittyp eines Ausdrucks, wie im folgenden Beispiel gezeigt:
int i = 34; object iBoxed = i; int? jNullable = 42; if (iBoxed is int a && jNullable is int b) { Console.WriteLine(a + b); // output 76 }Im vorherigen Beispiel wird die Verwendung eines Deklarationsmusters veranschaulicht.
So überprüfen
nullSie nach , wie im folgenden Beispiel gezeigt:if (input is null) { return; }Wenn Sie mit einem Ausdruck
nullübereinstimmen, garantiert der Compiler, dass kein Benutzer überladen==oder!=operator aufgerufen wird.Sie können ein Negationsmuster verwenden, um eine Nicht-Null-Prüfung auszuführen, wie im folgenden Beispiel gezeigt:
if (result is not null) { Console.WriteLine(result.ToString()); }Sie können Listenmuster verwenden, um Elemente einer Liste oder eines Arrays abzugleichen. Der folgende Code überprüft Arrays auf ganzzahlige Werte in erwarteten Positionen:
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
Hinweis
Eine vollständige Liste der vom is Operator unterstützten Muster finden Sie unter "Patterns".
C#-Sprachspezifikation
Weitere Informationen finden Sie im Abschnitt "Is is" der C#-Sprachspezifikation und des Musterabgleichs.