Pendant que je travaillais sur une mise à jour, je suis tombé sur un code comme celui-ci.Implémentation implicite et explicite de l'interface
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();
}
}
Ma question est: Y at-il besoin/utilisation de la mise en œuvre « explicite » de l'interface dans ce morceau de code? Cela créera-t-il un problème si je supprime la méthode (implémentation explicite de l'interface) que j'ai marquée "redondant" ci-dessus? PS: Je comprends que la mise en œuvre explicite de l'interface est très importante, et elle peut être utilisée lorsque nous devons donner accès à une méthode au niveau de l'interface seulement, et utiliser deux interfaces avec la même signature de méthode.
Et si vous implémentez les deux et que vous créez une sous-classe, qu'arriverait-il si vous appeliez la méthode sur une variable d'interface référençant un objet de sous-classe? Pourriez-vous fournir un exemple? Voir aussi [ma question] (http://stackoverflow.com/q/10165296/537956) ._ – comecme