接口的默认实现是什么意思

时间:2010-03-12 19:40:15

标签: c# .net interface

我在许多文档示例中看到过这种说法,例如here

  

此类是“ISomeInterface”接口的默认实现

这究竟是什么意思?感谢

3 个答案:

答案 0 :(得分:9)

这有点误导,因为根据定义,接口不提供任何实现。

然而,框架的许多部分都试图让生活更轻松 - 因此它们提供了一个接受接口的方法,但也提供了一个没有参数的重载。一个很好的例子是List<T>.Sort

这里的文档建议,如果你使用的方法通常需要IComparer<T>,但是通过一些没有的重载使用它,你将获得引用的“默认实现”。

但是,这实际上是与接口本身无关的类的“实现细节”。我个人认为这在文档中的选择很差,应该更像是:

  

框架中的许多类型依赖于此接口提供的常见实现    Comparer 类。

在我看来,这会为此提供更明确的含义......

答案 1 :(得分:3)

这意味着当你在没有参数的情况下调用Sort方法时(没有明确指定比较器),它将使用这个默认实现。

答案 2 :(得分:0)

这意味着这个类是实现接口的类。它指向实现接口本身的对象,没有任何派生或继承的成员,但显然是接口。这是与此接口直接对应的类。

public interface IComparer {
    // Some members to implement here.
}

public class Comparer : IComparer {
    // IComparer members implementation
}