有没有办法检查类型而不考虑它的继承树?但在函数内部

Is there any way to check the type regardless its inheritance tree? but inside of function

我想在 Canvas 的子项中检查 class 类型而不考虑继承树。所以我做了一个可重用的函数,如下所示。

private int FindIndexOf(Type _t)
    {
        if (wrappingGrid == null)
            return -1;

        for(int i =0; i< wrappingGrid.Children.Count; ++i)
        {
            if(wrappingGrid.Children[i].GetType() == _t)
            {
                return i;
            }
        }
        return -1;
    }

但它只适用于类型严格的情况。

wrappingGrid.Children[i] is _t

这也不起作用,因为 'Type' 类型不是我想要比较的类型。它会导致语法错误。 可能我需要制作一个模板函数。 不过我还是写点简单的代码吧。

我也已经研究过其他文章。 Type Checking: typeof, GetType, or is?

你有什么想法吗? 提前谢谢你..

也许你应该试试 wrappingGrid.Children[i].GetType().IsSubClassOf(_t)

编辑 @用户: 是的:IsAssignableFrom 更好,但反之亦然:

_t.IsAssignableFrom(wrappingGrid.Children[i].GetType()