(个人)当具有相同签名的方法之间存在冲突时,我只看到需要显式实现.
例如,在实现时IEnumerable<T>,应该实现2个GetEnumerator()具有相同签名的方法,但返回类型除外.所以你必须IEnumerable.GetEnumerator()明确地实现:
public abstract class MyClass<T> : IEnumerable<T>
{
public IEnumerator<T> GetEnumerator()
{
return ...;
}
IEnumerator IEnumerable.GetEnumerator() // explicit implementation required
{
return GetEnumerator();
}
}
Run Code Online (Sandbox Code Playgroud)
显式实现的另一个用途是,如果您不希望通过对象实例调用该方法,而只是通过接口调用该方法.我个人认为这没有多大意义,但在一些非常罕见的情况下,它可能是有用的.