Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

is (C#-Referenz)

Überprüft, ob ein Objekt mit einem bestimmten Typ kompatibel ist. Auf die folgende Weise kann beispielsweise festgestellt werden, ob ein Objekt mit dem string-Typ kompatibel ist:

if (obj is string)
{
}

Ein is-Ausdruck wird mit true ausgewertet, wenn der bereitgestellte Ausdruck nicht NULL ist und das bereitgestellte Objekt in den bereitgestellten Typ umgewandelt werden kann, ohne dass eine Ausnahme ausgelöst wird. Weitere Informationen finden Sie unter 7.6.6 Umwandlungsausdrücke.

Das is-Schlüsselwort führt zur Kompilierzeit zu einer Warnung, wenn der Ausdruck bekanntermaßen immer true ist oder wenn er immer false ist, zur Laufzeit aber in der Regel das Ergebnis der Typkompatibilität liefert.

Der is-Operator kann nicht überladen werden.

Beachten Sie, dass der is-Operator nur Verweis-, Boxing- und Unboxingkonvertierungen berücksichtigt. Andere Konvertierungen, z. B. benutzerdefinierte Konvertierungen, werden nicht berücksichtigt.

// 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");
    }
}

Ausgabe

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

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 7.9.9 Der is-Operator

Anzeigen: