No Visual Studio, posso clicar com o botão direito do mouse em uma interface e escolher Implementar Interface ou Implementar Interface Explicitamente.
public class Test : ITest
{
public string Id // Generated by Implement Interface
{
get { throw new NotImplementedException(); }
}
string ITest.Id // Generated by Implement Interface Explicitly
{
get { throw new NotImplementedException(); }
}
}
A única diferença que vejo entre os dois é que o nome da interface é adicionado às propriedades e métodos da interface quando eles são criados, se você optar por implementar a interface explicitamente.
Acho que torna o código um pouco mais legível, pois posso ver de onde vem esse método / propriedade. No entanto, isso faz alguma diferença na maneira como a classe é usada ou compilada? E realmente importa se eu implemento minhas interfaces de forma implícita ou explícita?