Je me demande simplement laquelle de ces deux méthodes, bool IsRael () de First Interface ou ISecondInterface, nous utilisons actuellement dans ExampleClass:

interface IFirstInterface
{
    bool IsReal(); 
}
interface ISecondInterface
{
    bool IsReal();
}



public class ExampleClass : IFirstInterface, ISecondInterface
{
    public bool IsReal() {}
    //public bool IsReal is IFirstInterface or ISecondInterface method.
}

S'il vous plaît, quelqu'un pourrait-il m'expliquer comment l'interface implicite fonctionne vraiment en C #.

1
jugend 29 déc. 2015 à 23:28

2 réponses

Meilleure réponse

Dans le guide d'implémentation d'interface explicite, vous pouvez lire l'instruction suivante:

Si une classe implémente deux interfaces qui contiennent un membre avec la même signature, l'implémentation de ce membre sur la classe obligera les deux interfaces à utiliser ce membre comme implémentation.

Vous pouvez implémenter une ou les deux interfaces explicitement pour remplacer ce comportement:

interface IFirstInterface
{
    bool IsReal(); 
}
interface ISecondInterface
{
    bool IsReal();
}

public class ExampleClass : IFirstInterface, ISecondInterface
{
    // will be used for IFirstInterface
    bool IFirstInterface.IsReal(){}

    // will be used for ISecondInterface
    public bool IsReal(){}
}
2
Vadim Martynov 29 déc. 2015 à 20:44

Pour plus de clarté, vous devez implémenter les deux fonctions public bool IFirstInterface.IsReal () {} public bool ISecondInterface.IsReal () {}

0
Anil Goel 29 déc. 2015 à 20:42