Compartilhar via


é (referência de C#)

Verifica se um objeto é compatível com um determinado tipo. Por exemplo, o código a seguir pode determinar se um objeto é uma instância da MyObject tipo, ou um tipo que deriva de MyObject:

if (obj is MyObject)
{
}

Um is expressão for avaliada como true se a expressão fornecida não for nulo, e o objeto fornecido pode ser convertido para o tipo fornecido sem causar uma exceção ser acionada.

O is palavra-chave faz com que um aviso de tempo de compilação se a expressão é conhecida como sempre true ou ser sempre false, mas normalmente avalia a compatibilidade do tipo em tempo de execução.

O is operador não pode ser sobrecarregado.

Observe que o is operador considera somente conversões de referência, conversões de boxing e unboxing conversões. Outras conversões, como conversões definidas pelo usuário, não são considerados.

Métodos anônimos não são permitidos no lado esquerdo do is operador. Essa exceção inclui expressões lambda.

Exemplo

class Class1 {}
class Class2 {}
class Class3 : Class2 { }

class IsTest
{
    static void Test(object o)
    {
        Class1 a;
        Class2 b;

        if (o is Class1)
        {
            Console.WriteLine("o is Class1");
            a = (Class1)o;
            // Do something with "a."
        }
        else if (o is Class2)
        {
            Console.WriteLine("o is Class2");
            b = (Class2)o;
            // Do something with "b."
        }

        else
        {
            Console.WriteLine("o is neither Class1 nor Class2.");
        }
    }
    static void Main()
    {
        Class1 c1 = new Class1();
        Class2 c2 = new Class2();
        Class3 c3 = new Class3();
        Test(c1);
        Test(c2);
        Test(c3);
        Test("a string");
    }
}
/*
Output:
o is Class1
o is Class2
o is Class2
o is neither Class1 nor Class2.
*/

Especificação da linguagem C#

Para obter mais informações, consulte C# Language Specification A especificação de linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também

Referência

C# Keywords

typeof (referência de C#)

como (referência de C#)

Palavras-chave de operador (referência de C#)

Conceitos

C# Programming Guide

Outros recursos

C# Reference