Share 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 seja lançada.

O is palavra-chave faz com que um aviso de tempo de compilação se a expressão é conhecida por ser 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 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 da 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 Especificação de linguagem do C# A especificação da linguagem é a fonte definitiva para a sintaxe e o uso da linguagem C#.

Consulte também

Referência

Palavras-chave C#

typeof (referência de C#)

como (referência de C#)

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

Conceitos

Guia de programação do C#

Outros recursos

Referência de C#