7

私は現在、MS70-515試験の勉強をしています。プラクティスの1つでは、作成者は暗黙的および明示的なインターフェイスを実装します。明示的な実装は、暗黙的な実装を呼び出すだけです。明示的な実装は、説明なしでリストされています。

インターフェイスの暗黙的実装と明示的実装の両方を持つことは理にかなっていますか?明示的な実装は冗長だと思います(この場合)。

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 Self-Paced Training Kit(Exam 70-515):Microsoft .NET Framework 4を使用したWebアプリケーション開発第9章、レッスン2、実践3に関係しています。

4

1 に答える 1

10

明示的な実装は完全に不要なようです。

あなたがそれを省略した場合にそれが違いを生むであろう場所でそれを呼ぶ方法を私は考えることができません。

小さな違いが1つあります。暗黙のバージョンは仮想であり、オーバーライドできることを意味します。明示的なバージョンは、常にこのエントリポイントで呼び出されます。ただし、仮想メンバーのみを呼び出すため、ここでは違いは使用されません。

于 2012-04-15T19:37:20.403 に答える