Interface et services [Résolu]

Messages postés
181
Date d'inscription
mardi 6 avril 2010
Dernière intervention
7 janvier 2012
- 28 déc. 2010 à 19:47 - Dernière réponse :
Messages postés
181
Date d'inscription
mardi 6 avril 2010
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 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
835
Date d'inscription
samedi 15 novembre 2008
Dernière intervention
14 janvier 2017
- 28 déc. 2010 à 23:27
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!

Merci cs_Robert33 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_Robert33
Messages postés
181
Date d'inscription
mardi 6 avril 2010
Dernière intervention
7 janvier 2012
- 29 déc. 2010 à 18:31
0
Merci
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.