Possible Duplicate:
C#: Interfaces - Implicit and Explicit implementation
有人能解释一下这两种动物的区别以及如何使用它们吗.好吧,很多人.2.0类是在没有泛型类型的情况下实现的,因此后一个版本实现了两种风格的接口.这是唯一需要使用它们的情况吗?
你能详细解释一下如何使用它们吗.?
谢谢
Possible Duplicate:
C#: Interfaces - Implicit and Explicit implementation
有人能解释一下这两种动物的区别以及如何使用它们吗.好吧,很多人.2.0类是在没有泛型类型的情况下实现的,因此后一个版本实现了两种风格的接口.这是唯一需要使用它们的情况吗?
你能详细解释一下如何使用它们吗.?
谢谢
There is a good and pretty detailed blog post about this.
基本上,通过隐式接口实现,您可以访问接口方法和属性,就像它们是类的一部分一样.通过显式接口实现,您只能在将其视为该接口时访问它们.
关于何时使用一个接口而不是另一个接口,有时您必须使用显式接口实现,因为您要么拥有与接口具有相同签名的属性/方法,要么想要实现具有相同签名的两个接口,并且对匹配的属性/方法具有不同的实现.
以下规则来自Brad Abrams design guidelines blog.
Brad的博客 comments 中还提到,在对值类型使用显式实现时会涉及装箱,因此要注意性能成本.