Equals的接口扩展方法

时间:2012-10-07 00:52:06

标签: c# dependency-injection extension-methods

我正在使用依赖注入并具有以下界面:

public interface IAchievement : IEquatable<IAchievement>
{
    string GetName();

    string GetDescription();
}

我有IEquatable,我可以定义Equals方法(对于list.contains()正常工作)。问题是,对于实现此接口的所有类,Equals方法完全相同。有没有办法使用扩展方法为接口定义它?我可以在实现类和接口之间的层次结构中粘贴一个“抽象”类,但担心会破坏依赖注入的目的。

1 个答案:

答案 0 :(得分:1)

您可以使用扩展方法为所有类提供通用实现,但每个类仍然需要自己实现Equals(),然后调用扩展方法。扩展方法不能用于满足接口。

使用抽象类与DI不矛盾。你仍然会通过界面。只是所有具体的类都有一个共同的基础。