我最近研究了一些代码,遇到了一个派生接口,它声明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(...)
。