Implementação implícita e explícita da interface
Enquanto trabalhava em uma atualização, encontrei um código como este.
interface ICustomization
{
IMMColumnsDefinition GetColumnsDefinition();
}
class Customization : ICustomization
{
private readonly ColumnDefinition _columnDefinition;
//More code here.
public ColumnsDefinition GetColumnsDefinition()
{
return _columnDefinition;
}
ColumnsDefinition ICustomization.GetColumnsDefinition() //redundant
{
return GetColumnsDefinition();
}
}
Minha pergunta é: Existe alguma necessidade / uso de implementação 'explícita' da interface nesse trecho de código? Isso criará algum problema se eu remover o método (implementação explícita da interface) que marquei "redundante" acima?
PS: Entendo que a implementação explícita da interface é muito importante e pode ser usada quando precisamos dar acesso a um método apenas no nível da interface e usar duas interfaces com a mesma assinatura do método.