C# 检查对象是类型还是子类型

C# 检查对象是类型还是子类型,c#,object,inheritance,types,C#,Object,Inheritance,Types,考虑以下检查对象是否为特定类型的代码: public MyMethod(object myObject) { if (myObject.GetType() != typeof(MyClass)) { throw new ArgumentException("The type is not MyClass"); } } 如何检查myObject的类型,以便允许MyClass的子类型?只需使用is操作符即可 如果(!(myObject是M

考虑以下检查对象是否为特定类型的代码:

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

如何检查
myObject
的类型,以便允许
MyClass
的子类型?

只需使用
is
操作符即可

如果(!(myObject是MyClass))
如果可能,限制参数类型,以便编译器为您强制执行该规则

公共MyMethod(MyClass myObject)

它似乎可以工作,但是有一个警告:
给定的表达式从来不是提供的('MyClass')类型。
。是的,这更有意义+1这可以根据需要工作