Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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 .
C#-språkreferensen dokumenterar den senaste versionen av C#-språket. Den innehåller även inledande dokumentation för funktioner i offentliga förhandsversioner för den kommande språkversionen.
Dokumentationen identifierar alla funktioner som först introducerades i de tre senaste versionerna av språket eller i aktuella offentliga förhandsversioner.
Tips/Råd
Information om när en funktion först introducerades i C# finns i artikeln om språkversionshistoriken för C#.
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.Om du vill göra en icke-null-kontroll med hjälp av ett negationsmönster, som i följande exempel visas:
if (result is not null) { Console.WriteLine(result.ToString()); }Så här matchar du element i en lista eller matris med hjälp av listmönster. 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.