实现接口隐式和显式是否有意义?

我正在攻读MS 70-515考试。 在其中一个实践中,作者实现了隐式和显式的接口。 显式实现只调用隐式实现。 刚才列出了显式实现而没有解释。

同时拥有接口的隐式和显式实现是否有意义? 我认为显式实现是多余的(在这种情况下)。

public class PassTextBox : TextBox, IScriptControl { public virtual IEnumerable GetScriptDescriptors() { var descriptor = new ScriptControlDescriptor( "AjaxEnabled.PassTextBox", ClientID); // ... return new ScriptDescriptor[] {descriptor}; } IEnumerable IScriptControl.GetScriptDescriptors() { return GetScriptDescriptors(); } } 

顺便说一下,代码似乎在没有显式实现的情况下运行得很好,因为隐式实现是公开的。

它涉及MCTS Self-Paced Training Kit(考试70-515):使用Microsoft .NET Framework进行Web应用程序开发4第9章,第2课,练习3。

显式实现似乎完全是多余的。

如果你把它排除在外,我想不出一种方法可以把它称之为它会产生影响。

有一个小的区别,隐式版本是虚拟意味着它可以被覆盖。 将始终在此入口点调用显式版本。 但由于它只调用虚拟成员,因此这里不使用差异。