IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Le comportement du mot clé base


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Août 2016
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Le comportement du mot clé base
    Bonjour à tous, j'ai une question comme le titre l'indique sur "base" en c#

    voila le contexte

    Nom : Capture d’écran 2016-08-28 à 20.44.07.png
Affichages : 151
Taille : 51,6 Ko

    Je me demandais dans cette utilisation classique de l'heritage faire en sorte que toutes les instructions de Children.Update() s'inscrivent dans Parent.Update() MAIS à l'intérieur de la condition, est ce que le langage permet ce genre de choses? un mot clé complémentaire à "base" pour définir ou va se placer les instruction d'override ?

    Merci d'avance.

  2. #2
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Pas compris

    Pourrais tu donner un exemple simple de ce que tu souhaites faire?

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Août 2016
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Ca marche, je remanie mon exemple que voila:
    Nom : Capture d’écran 2016-08-29 à 11.25.22.png
Affichages : 113
Taille : 44,6 Ko

    le but du jeu c'est que les trois instructions de l'enfant se place au cours de l'override dans la méthode Update du parent,
    spécifiquement à l'interieur de la condition ( foo == bar ) pour que l'override ne s'execute que si les operations booléene que verifie le parent sont bonnes.

  4. #4
    Membre actif
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Points : 297
    Points
    297
    Par défaut
    Bonjour,

    Je pense que tu devrais revoir un peu les principes de base de la POO.

    Je ne vois absolument pas pourquoi la méthode parent.Update() aurait connaissance des instructions contenu dans enfant.Update() et donc devrait les exécuter (que ça soit à l'intérieur ou à l'extérieur de la condition).

    En l’occurrence, l'utilisation de base.Update() dans la méthode Update() de l'enfant n'est, en soit, qu'un simple appel de méthode comme tous les autres. La seule différence est l'utilisation du mot clé base, qui est un 'raccourci' pour accéder à l'objet parent.

    Si tu veux que la méthode Update() de Enfant exécute certaines instructions sous condition, il faut définir la condition dans la méthode de l'enfant.

    Maintenant, si le résultat de cette condition doit intervenir à plusieurs endroit du parent et de l'enfant, personne t’empêche de l'exporter dans une méthode à part, qui serait dans le parent (donc accessible du parent et de l'enfant) et te retournerais un booléen par exemple.

    Bonne continuation.
    L’aléatoire n’existe pas en informatique, c’est juste un moyen de dire que l’on a pas encore compris.

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Août 2016
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Ca marche, merci beaucoup

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    Je trouve que @Kyroon va un peu vite ! Mais vu ton discours pas très claire conserve son conseil quand même .
    Est-ce que ce que tu veux faire pourrais correspondre à quelque chose comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    public class Parent	
    {
    	public void Update()
    	{	
    		if( foo == bar)
    		{
    			TrucAFaire();
    		}
    	}
     
    	public virtual void TrucAFaire()
            {
              // truc fait par le parent
            }
    }
     
    public class Children1 : Parent	
    {
     
    	public override void TrucAFaire()
    	{
    		//je fais un truc avec 1 
    	}
    }
     
    public class Children2 : Parent	
    {
     
    	public override void TrucAFaire()
    	{
    		//je fais un truc avec 2 
    	}
    }
    Après il n'y a du coup pas de rapport avec le mot clé base. Mais c'est le pattern que tu recherches je pense, vu ce que l'on comprend (certes difficilement ).
    Pour ton cas seul le Children1 serait utile vue ce que tu nous explique. Mais si tu as plusieurs Children alors tu pourrais même avoir des comportements différents en fonction du children instanciés.

    Stp utilise la balise Code plutôt que des images ! je suis féniant j'aime pouvoir faire des copier-coller.

    Bon Code,
    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mots clés Base de connaissance
    Par aurel80 dans le forum SharePoint
    Réponses: 0
    Dernier message: 03/11/2009, 13h45
  2. Usage du mot clef base et du modifier override
    Par olibara dans le forum C#
    Réponses: 9
    Dernier message: 05/09/2008, 14h33
  3. Réponses: 2
    Dernier message: 23/08/2007, 15h39
  4. besoin d'un mot de base sysbda
    Par aymengomez dans le forum Oracle
    Réponses: 2
    Dernier message: 07/03/2007, 13h58
  5. Comportements anormaux sur une base
    Par Albator5151 dans le forum Oracle
    Réponses: 6
    Dernier message: 09/02/2007, 13h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo