例如,有一個類型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. 如何知道一個dom元素是否是某種類型的標籤
- 2. 如何知道某個類型X的最後一個活動是關閉的?
- 3. 如何知道一個類的屬性的類型是定製
- 4. 實例化一個知道通用基類的泛型類型
- 5. 如何知道繼承的泛型類型的基類型?
- 6. 如何知道某個類是否擴展了JWindow類?
- 7. 如何知道某個類是否可以用作靜態類?
- 8. 我們如何知道類型類是否是另一個類型類的子類?
- 9. 如何知道類枚舉的基礎類型?
- 10. 如何「承諾」,一個值將是某種類型
- 11. 如何知道哪種佈局類型是視圖?
- 12. 如何檢查某個對象是否爲某種類型
- 13. 使用某種類型的多個類
- 14. 如何知道某個類是來自JRE還是外部Jar?
- 15. 如何知道wheter一個類型是引用類型或Visual Studio
- 16. MSVC - 我如何知道一個類型是否必須移動?
- 17. 知道某個類是否是本徵類
- 18. 如何從EA中的另一種類型生成某種類型的圖表?
- 19. 一個類如何知道它的超類是Object?
- 20. 如何知道類型是否繼承了其他類型?
- 21. 如何知道某個類是否符合某個特定的KVO?
- 22. 如何知道某個類是否映射爲Hibernate實體?
- 23. 如何知道某個類是否有析構函數
- 24. 如何確定一個類型是否是一種類型的集合?
- 25. 我該如何最好地解決這個對象類型heirachy?某種類型的枚舉層次結構?
- 26. 如何簡單地將一個類型的集合到另一種類型
- 27. 如何檢查類型是否是Python中的某個類型的子類型?
- 28. 我如何知道某個類型是否附有字符串轉換器?
- 29. 如何知道返回哪種類型的HttpEntity
- 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