7

我目前正在准备我的 MS 70-515 考试。在其中一种实践中,作者实现了一个隐式和显式的接口。显式实现只是调用隐式实现。只是列出了显式实现,没有解释。

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

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

    IEnumerable<ScriptDescriptor> IScriptControl.GetScriptDescriptors()
    {
        return GetScriptDescriptors();
    }
}

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

它涉及MCTS 自定进度培训工具包(考试 70-515):使用 Microsoft .NET Framework 进行 Web 应用程序开发 4第 9 章,第 2 课,准确地说是练习 3。

4

1 回答 1

10

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

我想不出一种方法来称呼它,如果您忽略它会有所作为。

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

于 2012-04-15T19:37:20.403 回答