Condividi tramite


is (Riferimenti per C#)

Controlla se un oggetto è compatibile con un determinato tipo. È ad esempio possibile determinare se un oggetto è compatibile con il tipo string, come riportato di seguito:

if (obj is string)
{
}

Note

Un'espressione is restituisce true se l'espressione fornita non è null e l'oggetto fornito può essere sottoposto a cast sul tipo fornito senza generare un'eccezione. Per ulteriori informazioni, vedere 7.6.6 Espressioni cast.

La parola chiave is genera un avviso in fase di compilazione se l'espressione è sempre true oppure è sempre false, ma in genere valuta la compatibilità dei tipi in fase di esecuzione.

Non è possibile sottoporre l'operatore is a overload.

È possibile utilizzare l'operatore is soltanto con le conversioni dei riferimenti, le conversioni boxing e le conversioni unboxing. Altre conversioni, ad esempio quelle definite dall'utente, non sono considerate.

Esempio

// cs_keyword_is.cs
// The is operator.
using System;
class Class1
{
}
class 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();
        Test(c1);
        Test(c2);
        Test("a string");
    }
}

Output

o is Class1
o is Class2
o is neither Class1 nor Class2.

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 7.9.9 Operatore is

Vedere anche

Riferimenti

Parole chiave di C#
typeof (Riferimenti per C#)
as (Riferimenti per C#)
Parole chiave per operatori (Riferimenti per C#)

Concetti

Guida per programmatori C#

Altre risorse

Riferimenti per C#