Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Operatorn
Operatorn is kontrollerar om resultatet av ett uttryck är kompatibelt med en viss typ. Information om typtestningsoperatorn is finns i avsnittet is operator i artikeln Type-testing and cast operators (operatorer för typtestning och gjutna operatorer ). Du kan också använda operatorn is för att matcha ett uttryck mot ett mönster, vilket visas i följande exempel:
static bool IsFirstFridayOfOctober(DateTime date) =>
    date is { Month: 10, Day: <=7, DayOfWeek: DayOfWeek.Friday };
I föregående exempel matchar operatorn is ett uttryck mot ett egenskapsmönster med kapslade konstant - och relationsmönster .
Operatorn is kan vara användbar i följande scenarier:
- Så här kontrollerar du körningstypen för ett uttryck, vilket visas i följande exempel: - int i = 34; object iBoxed = i; int? jNullable = 42; if (iBoxed is int a && jNullable is int b) { Console.WriteLine(a + b); // output 76 }- Föregående exempel visar användningen av ett deklarationsmönster. 
- För att söka efter - null, som följande exempel visar:- if (input is null) { return; }- När du matchar ett uttryck mot - nullgaranterar kompilatorn att ingen överlagrad- ==användare eller- !=operator anropas.
- Du kan använda ett negationsmönster för att göra en icke-null-kontroll, som följande exempel visar: - if (result is not null) { Console.WriteLine(result.ToString()); }
- Från och med C# 11 kan du använda listmönster för att matcha element i en lista eller matris. Följande kod kontrollerar matriser efter heltalsvärden i förväntade positioner: - 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
Anmärkning
En fullständig lista över mönster som stöds av operatorn finns i isMönster.
Språkspecifikation för C#
Mer information finns i avsnittet is-operator i C#-språkspecifikationen och Mönstermatchning.