关于c#:我如何知道类继承自类或接口?

How can I know what Classes inherit from a Class or Interface?

本问题已经有最佳答案,请猛点这里访问。

我偶然发现了这个方法

1
Clipboard.GetDataObject()

它返回一个IDataObject,所以我认为(可能)已经有一个类在.NET框架中实现了IDataObject接口,但是我如何才能找到它?


一个接口的全部要点是您不必知道特定的类。只使用

1
IDataObject myData = Clipboard.GetDataObject();


如果需要在Visual Studio中查找IDataObject的派生类型,可以使用对象浏览器(View -> Object Browser)。

在搜索框中键入"IDataObject",然后从"浏览"下拉列表中选择所需的.NET框架版本。

展开结果,您将看到"派生类型"文件夹,该文件夹将为您提供答案。


如果您想知道接口后面的真实对象,可以使用:

1
2
3
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"

但在这种情况下它没有多大价值(我想)。见@speying答案:)