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#)