有没有办法检查类型而不管其继承树?但在功能里面

Mar*_*hoi 0 c# wpf types gettype

我想在Canvas的子项中检查类型,而不管继承树.所以我做了一个可重复使用的功能,如下所示.

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;
    }
Run Code Online (Sandbox Code Playgroud)

但它只适用于type-strict.

wrappingGrid.Children[i] is _t
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为'Type'类型不是我想要比较的类型.它会导致语法错误.可能我需要制作模板功能.但我最好编写更简单的代码.

我已经查看了其他文章. 类型检查:typeof,GetType还是?

你有什么主意吗?先感谢您..

Fra*_*tyx 5

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

编辑@usr:是的:IsAssignableFrom更好,但必须反过来调用它:

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