Interface et services [Résolu]

pop70 181 Messages postés mardi 6 avril 2010Date d'inscription 7 janvier 2012 Dernière intervention - 28 déc. 2010 à 19:47 - Dernière réponse : pop70 181 Messages postés mardi 6 avril 2010Date d'inscription 7 janvier 2012 Dernière intervention
- 29 déc. 2010 à 18:31
Bonjour, je débute tout juste en C#, que j'apprends d'après un livre qui explique comment l'utiliser avec le framework XNA. (Il n'est normalement pas nécessaire de connaitre le C# avant de lire le bouquin...)

Dans un chapitre il est dit de créer un service pour la gestion du clavier.
Seulement j'ai une erreur :


Erreur 1 'Projet_1.KeyboardService' n'implémente pas le membre d'interface 'Projet_1.IKeyboardService.IsKeyDown(Microsoft.Xna.Framework.Input.Keys)'. 'Projet_1.KeyboardService.IsKeyDown(Microsoft.Xna.Framework.Input.Keys)' ne peut pas implémenter un membre d'interface, car il n'est pas public.


Voici la source :

L'interface qui contient le service :

[code=cs]using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace Projet_1
{
    interface IKeyboardService
    {
        bool IsKeyDown(Keys key);
    }
}


Et la classe qui l'utilise :
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace Projet_1
{
    class KeyboardService : GameComponent, IKeyboardService
    {
         KeyboardState KBState;

        public KeyboardService(Game game)
            : base(game) // C'est ici qu'il indique l'erreur
        {
            ServiceHelper.Add(this);
        }

         bool IsKeyDown(Keys key)
        {
            return KBState.IsKeyDown(key);
        }

        public override void Update(GameTime gameTime)
        {
            KBState = Keyboard.GetState();
            base.Update(gameTime);
        }
        
    }
}

J'ai donc essayé de mettre "public" devant bool IsKeyDown de l'interface, mais ça ne marche pas non plus.


Merci d'avance pour votre aide.


Pop70
Afficher la suite 

2 réponses

Répondre au sujet
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 28 déc. 2010 à 23:27
+1
Utile
bonsoir

J'ai donc essayé de mettre "public" devant bool IsKeyDown de l'interface, mais ça ne marche pas non plus.


c'est dans l'implémentation (class KeyboardService ) qu'il faut que tu mettes 'public bool IsKeyDown' pas dans la déclaration de l'interface.

Bob.
C# is amazing, enjoy it!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Robert33
pop70 181 Messages postés mardi 6 avril 2010Date d'inscription 7 janvier 2012 Dernière intervention - 29 déc. 2010 à 18:31
0
Utile
Merci beaucoup ! Ça fonctionne parfaitement maintenant !



Pop70
Commenter la réponse de pop70

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.