Pourquoi ne puis-je pas l'appel de méthodes à l'intérieur d'une classe qui, explicitement implémente une interface?

Voici l'histoire. J'ai créé une interface, IVehicle. J'ai explicitement mis en œuvre l'interface dans ma classe, Vehicle.cs.

Voici mon interface:

Interface IVehicle
{
        int getWheel();
}

voici ma classe:

class Vehicle: IVehicle
{

     public int IVehicle.getWheel()
     {
         return wheel;
     }

     public void printWheel()
     {
         Console.WriteLine(getWheel());
     }
}

Avis que getWheel() est explicitement mis en œuvre. Maintenant, quand j'essaie de appel cette méthode dans ma classe de Véhicule, j'ai un message d'erreur indiquant que getWheel() n'existe pas dans le contexte actuel. Quelqu'un peut-il m'aider à comprendre ce que je fais de mal?

  • En tant QUE java personne, je me demande pourquoi ce alambiqué chose existe ? Pourquoi quelqu'un voudrait-le au-dessus d'exister, ce qui avantage est le gain ?
  • La spécification d'un modificateur de visibilité sur un explicitement mise en œuvre de membre est une erreur de syntaxe. Le membre est toujours accessible une fois que votre objet a été coulé à votre type d'interface.
  • Si vous êtes à la mise en œuvre de multiples interfaces avec d'une commune membre, ce qui vous permet de fournir des définitions différentes de par interface. Aussi, il ajoute à nettoyer intellisense, parce que l'explicite les membres ne sont pas visibles ou utilisables, sauf si vous lancez l'interface appropriée.
InformationsquelleAutor tyrone302 | 2010-03-26