最近、いくつかのコードを調べnew
たところ、基本インターフェイスとまったく同じ名前とシグネチャを持つメソッドを宣言する派生インターフェイスに遭遇しました。
public interface IBase
{
Result Process(Settings settings);
}
public interface IDerived : IBase
{
new Result Process(Settings settings);
}
これには何か理由があるのではないかと考えています。私の理解によれば、後者のメソッド宣言を安全に削除して、IDerived
それを使用するコードを壊すことなく空のままにすることができます。私が間違っている?
PSこれが問題になる場合、これらのインターフェイス宣言には次の属性もあります:ComVisible(true)
、InterfaceType(ComInterfaceType.InterfaceIsIUnknown)
およびGuid(...)
。