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.
Die C#-Sprachreferenz dokumentiert die zuletzt veröffentlichte Version der C#-Sprache. Außerdem enthält sie eine erste Dokumentation zu Funktionen in der öffentlichen Vorschau für die kommende Sprachversion.
In der Dokumentation werden alle Features identifiziert, die in den letzten drei Versionen der Sprache oder in der aktuellen öffentlichen Vorschau eingeführt wurden.
Tipp
Informationen dazu, wann ein Feature erstmals in C# eingeführt wurde, finden Sie im Artikel zum Versionsverlauf der C#-Sprache.
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.Gehen Sie wie im folgenden Beispiel vor, um eine Nicht-NULL-Überprüfung mithilfe eines Negationsmusters auszuführen:
if (result is not null) { Console.WriteLine(result.ToString()); }Um Elemente einer Liste oder eines Arrays mithilfe von Listenmustern 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.