Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Operator
Operator is sprawdza, czy wynik wyrażenia jest zgodny z danym typem. Aby uzyskać informacje na temat operatora testowania typów, zobacz sekcję is w artykule Type-testing and cast operators (Operatory testowania typów i rzutowania). Możesz również użyć is operatora, aby dopasować wyrażenie do wzorca, jak pokazano w poniższym przykładzie:
static bool IsFirstFridayOfOctober(DateTime date) =>
date is { Month: 10, Day: <=7, DayOfWeek: DayOfWeek.Friday };
W poprzednim przykładzie is operator pasuje do wyrażenia względem wzorca właściwości z zagnieżdżonym stałymi i relacyjnymi wzorcami.
Dokumentacja języka C# zawiera ostatnio wydaną wersję języka C#. Zawiera również początkową dokumentację dla funkcjonalności w publicznych wersjach testowych nadchodzącego wydania języka.
Dokumentacja identyfikuje dowolną funkcję po raz pierwszy wprowadzoną w ostatnich trzech wersjach języka lub w bieżącej publicznej wersji zapoznawczej.
Wskazówka
Aby dowiedzieć się, kiedy funkcja została po raz pierwszy wprowadzona w języku C#, zapoznaj się z artykułem dotyczącym historii wersji języka C#.
Operator is może być przydatny w następujących scenariuszach:
Aby sprawdzić typ wyrażenia w czasie wykonywania, jak pokazano w poniższym przykładzie:
int i = 34; object iBoxed = i; int? jNullable = 42; if (iBoxed is int a && jNullable is int b) { Console.WriteLine(a + b); // output 76 }W poprzednim przykładzie pokazano użycie wzorca deklaracji.
Aby sprawdzić element
null, jak pokazano w poniższym przykładzie:if (input is null) { return; }W przypadku dopasowania wyrażenia do
nullelementu kompilator gwarantuje, że nie jest wywoływany żaden przeciążony==przez użytkownika ani!=operator.Aby wykonać sprawdzanie bez wartości null przy użyciu wzorca negacji, jak pokazano w poniższym przykładzie:
if (result is not null) { Console.WriteLine(result.ToString()); }Aby dopasować elementy listy lub tablicy przy użyciu wzorców listy. Poniższy kod sprawdza tablice dla wartości całkowitych w oczekiwanych pozycjach:
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
Uwaga / Notatka
Aby uzyskać pełną listę wzorców obsługiwanych przez is operator, zobacz Patterns (Wzorce).
Specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz sekcję operator isspecyfikacji języka C# i dopasowywania wzorca.