Interface et services [Résolu]

Messages postés
181
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
7 janvier 2012
- - Dernière réponse : pop70
Messages postés
181
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
7 janvier 2012
- 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

Meilleure réponse
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
26
1
Merci
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!

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 198 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Robert33
Messages postés
181
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
7 janvier 2012
4
0
Merci
Merci beaucoup ! Ça fonctionne parfaitement maintenant !



Pop70
Commenter la réponse de pop70