例如,有一个类型A,我怎么能知道它的一个是Windows.Forms.Form?如何知道一个类的最低基地是某种类型
2
A
回答
0
像这样(未经):
var x = yourValue;
var t = x.GetType();
var p = t;
while (p.BaseType != null)
{
p = t.BaseType;
}
如果你正在寻找一个特定的类型,而不是只知道基本是什么,你测试它。
var myX = x as WhateverType;
if (myX != null)
{
// Use myX
}
+0
只是hardcode typeof(object)... – 2011-02-26 01:07:34
0
2
您可以键入使用IsSubclassOf方法:
var myType = typeof(Form1);
var formType = typeof(Form);
Console.WriteLine(myType.IsSubclassOf(formType)); //outputs 'true'
0
下面是检查类型之间的祖先关系的一个快捷方式。也就是说,如果Form类型的变量可以引用A,那么A就是从Form派生的:A:
Type aType=typeof(A);
...
bool isFormAnAncestorOfA = typeof(Form).IsAssignableFrom(aType);
相关问题
- 1. 如何知道某个类型X的最后一个活动是关闭的?
- 2. 如何知道继承的泛型类型的基类型?
- 3. 如何知道某个类是否可以用作静态类?
- 4. 我们如何知道类型类是否是另一个类型类的子类?
- 5. 如何知道类枚举的基础类型?
- 6. MSVC - 我如何知道一个类型是否必须移动?
- 7. 如何从EA中的另一种类型生成某种类型的图表?
- 8. 一个类如何知道它的超类是Object?
- 9. 如何知道类型是否继承了其他类型?
- 10. 如何知道某个类是否符合某个特定的KVO?
- 11. 如何知道某个类是否映射为Hibernate实体?
- 12. 我该如何最好地解决这个对象类型heirachy?某种类型的枚举层次结构?
- 13. 如何检查类型是否是Python中的某个类型的子类型?
- 14. 我如何知道某个类型是否附有字符串转换器?
- 15. C如何知道期望的类型?
- 16. 如何知道变量的类型?
- 17. 如何知道链接器的类型
- 18. 如何知道某个特定的内核是否基于linux?
- 19. 如何知道一个jQuery对象的类型?
- 20. 如何检查对象是否是某种类型的数组?
- 21. 有两种类型的Arraylist:如何确定第一种类型?
- 22. 如何使一个基类C类型的子类的实例#
- 23. EF6如何知道派生类型?
- 24. var如何知道未定义类型?
- 25. 如何知道哪个类叫另一个类?
- 26. 如何为一种类型的对象创建一个类?
- 27. 转换一个对象到一个泛型类不知道类型
- 28. 如何知道服务器是否接受特定类型的内容类型?
- 29. 如何检查一个目录是否包含某种文件类型?
- 30. 类无法解析为某种类型
取决于“最低祖先”的含义。所有类型层次结构的基础都是Object,因此没有任何东西可以有Form。如果你的意思是具体类型,形式是非常罕见的,我看不到用法... – 2011-02-26 01:06:05
修改问题 – user496949 2011-02-26 01:07:08
A.BaseType == typeof(System.Windows.Forms.Form) – 2011-02-26 01:09:28