我可以使.NET框架类实现我定义的接口吗?

skb*_*skb 3 .net interface

我想采用一个.NET类(为了讨论而让我们说FileInfo)并让它实现我的接口.例如:

public interface IDeletable
{
    void Delete();
}
Run Code Online (Sandbox Code Playgroud)

请注意,FileInfo DOES具有Delete()方法,因此该接口可能有意义.

这样我就可以得到这样的代码:

FileInfo fileinfo = ...;
DeletObject(fileInfo);

public void DeleteObject(IDeletable deletable)
{
    deletable.Delete();
}
Run Code Online (Sandbox Code Playgroud)

是否可以使现有的类匹配这样的接口?

  • 肖恩

Nei*_*ell 5

不.您需要适配器模式.这为您提供了一个实现所需接口的类,并为您"适应"框架类接口.这意味着您的界面设计甚至不必与框架类的界面完全匹配.

正如Marc Gravell在另一个答案中指出的那样,你可能会欺骗并使用扩展方法.