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还是?
你有什么主意吗?先感谢您..
也许你应该试试 wrappingGrid.Children[i].GetType().IsSubClassOf(_t)
编辑@usr:是的:IsAssignableFrom更好,但必须反过来调用它:
_t.IsAssignableFrom(wrappingGrid.Children[i].GetType()