1

我正在使用依赖注入并具有以下接口:

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

    string GetDescription();
}

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

4

1 回答 1

1

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

使用抽象类与 DI 并不矛盾。你仍然会传递接口。只是所有的具体类都有一个共同的基础。

于 2012-10-07T00:59:09.400 回答