Überprüfen Sie, ob ein Objekt ein Typ oder ein Subtyp ist [Duplikat]

Sep 02 2020

Betrachten Sie den folgenden Code, der prüft, ob ein Objekt von einem bestimmten Typ ist:

public MyMethod(object myObject)
{
    if (myObject.GetType() != typeof(MyClass))
    {
        throw new ArgumentException("The type is not MyClass");
    }
}

Wie kann der Typ myObjectüberprüft werden, um Untertypen von zuzulassenMyClass ?

Antworten

3 JeremyLakeman Sep 02 2020 at 12:26

Verwenden Sie einfach den isOperator.

if (!(myObject is MyClass))

Wenn möglich, beschränken Sie den Argumenttyp, damit der Compiler diese Regel für Sie erzwingt.

public MyMethod(MyClass myObject)