(C# odkaz)
Zkontroluje, zda je kompatibilní s daného typu objektu.Například následující kód můžete určit, pokud je objekt instancí MyObject typ nebo typ, který je odvozen od MyObject:
if (obj is MyObject)
{
}
is Výraz vyhodnocen jako true -li zadaný výraz hodnotu null a poskytnutý objekt můžete obsadit poskytnutý typ, aniž by být vyvolána výjimka.
is Klíčové slovo způsobuje kompilace upozornění Pokud výraz známý vždy true nebo vždy false, ale obvykle vyhodnotí kompatibility typu v době spuštění.
is Operátor nemůže být přetížena.
Všimněte si, že is operátor pouze považuje referenční převody, boxerská převody a převody na volné určení.Nejsou považovány za jiné převody, například uživatelem definované převody.
Anonymní metody nejsou povoleny na levé straně is operátor.Tato výjimka zahrnuje lambda výrazů.
Příklad
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.
*/
Specifikace jazyka C#
Další informace naleznete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.
Viz také
Referenční dokumentace
Operátor klíčová slova (C#-Reference)