2014-09-02 71 views
0

我在這個方法如何知道類是從類還是接口繼承的?

Clipboard.GetDataObject() 

它返回一個IDataObject所以我無意中發現有(也許)已經一類在.NET Framework實現IDataObject接口,但我怎麼能找到呢?

+0

搜索'IDataObject'的解決方案。如果它在一個DLL中;那麼除非獲得源代碼,否則您將無法找到代碼。 – user1477388 2014-09-02 13:10:47

+0

http://www.codeproject.com/Articles/896/Using-the-clipboard-to-transfer-data-to-and-from-y – 2014-09-02 13:10:50

+1

你的意思是使用反射或Visual Studio? – Liath 2014-09-02 13:12:29

回答

1

如果您需要在Visual Studio中查找IDataObject的派生類型,則可以使用對象瀏覽器(View -> Object Browser)。

在搜索框中鍵入「IDataObject」,然後從「瀏覽」下拉列表中選擇需要的.NET Framework版本。

展開結果,你應該看到「派生類型」文件夾應該給你一個答案。

+0

這就是我一直在尋找的感謝。 – user1509229 2014-09-02 13:37:00

3

接口的要點是你不必知道一個特定的類。只需使用

IDataObject myData = Clipboard.GetDataObject(); 
+0

好吧,謝謝你,我不知道(或忘記)了。 – user1509229 2014-09-02 13:34:33

0

如果你想知道接口背後的真正對象,你可以使用:

var obj = Clipboard.GetDataObject(); 
var str = obj.GetType().ToString(); 
//I tried in a Windows Forms project and the type behind it is "System.Windows.Forms.DataObject" 

但它並沒有在這種情況下,(我認爲)多少價值。請參閱@speising答案:)

相關問題