Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O
O is operador verifica se o resultado de uma expressão é compatível com um determinado tipo. Para obter informações sobre o operador de teste is de tipo, consulte a seção operador is do artigo Operadores de conversão e teste de tipo. Você também pode usar o is operador para corresponder uma expressão a um padrão, como mostra o exemplo a seguir:
static bool IsFirstFridayOfOctober(DateTime date) =>
date is { Month: 10, Day: <=7, DayOfWeek: DayOfWeek.Friday };
No exemplo anterior, o is operador corresponde a uma expressão com um padrão de propriedade com padrões de constante aninhados e relacionais .
A linguagem C# faz referência a documentos da versão mais recentemente lançada da linguagem C#. Ele também contém a documentação inicial para funcionalidades em pré-visualizações públicas para o próximo lançamento do idioma.
A documentação identifica qualquer recurso introduzido pela primeira vez nas três últimas versões do idioma ou nas versões prévias públicas atuais.
Dica
Para descobrir quando um recurso foi introduzido pela primeira vez em C#, consulte o artigo sobre o histórico de versão da linguagem C#.
O is operador pode ser útil nos seguintes cenários:
Para verificar o tipo de tempo de execução de uma expressão, como mostra o exemplo a seguir:
int i = 34; object iBoxed = i; int? jNullable = 42; if (iBoxed is int a && jNullable is int b) { Console.WriteLine(a + b); // output 76 }O exemplo anterior mostra o uso de um padrão de declaração.
Para verificar
null, como mostra o exemplo a seguir:if (input is null) { return; }Quando você corresponde a uma expressão,
nullo compilador garante que nenhum operador ou==usuário!=sobrecarregado seja invocado.Para fazer uma verificação não nula usando um padrão de negação, como mostra o exemplo a seguir:
if (result is not null) { Console.WriteLine(result.ToString()); }Para corresponder elementos de uma lista ou matriz usando padrões de lista. O código a seguir verifica matrizes em busca de valores inteiros em posições esperadas:
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
Observação
Para obter a lista completa de padrões compatíveis com o is operador, consulte Padrões.
Especificação da linguagem C#
Para obter mais informações, consulte a seção Operador is da especificação da linguagem C# e correspondência de padrões.