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 :

Écrire un constructeur correctement


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2018
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 300
    Par défaut Écrire un constructeur correctement
    Bonjour, j'ai la consigne suivante :
    Écrire le code de la méthode du constructeur de la classe Panne
    J'ai les informations suivantes:
    Nom : aaaa.png
Affichages : 477
Taille : 37,7 Ko

    Ce que j'ai essayé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    public void Panne(Int16 idPanne, Lampadaire leLampadaire, Boolean urgent)
    this.lesInterventions = lesInterventions;
    if (urgent == true) {
    AjouteInterventionUrgente(true);
    }
    Est-ce bon? Je ne vois pas très bien ce qu'attends l'énoncé comme code.
    Par exemple "valoriser les attributs" => je ne trouve rien sur le net pour comprendre ce que cela veut dire CONCRETEMENT.
    merci d'avance

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    je pense qu'il voulait dire initialiser ou définir la valeur

    dans le principe une classe a des propriétés publiques (parfois que le get) et/ou des variables (aussi appelés champs) privées
    le constructeur peut exiger des paramètres, et utilisent ces paramètres pour initialiser les variables/propriétés de l'instance

    donc si IdPanne est une propriété il faut faire IdPanne = idPanne
    et si _IdPanne est une variable privée il faut faire _IdPanne = idPanne


    après
    this.lesInterventions = lesInterventions;ceci ne fait rien, car this est facultatif, donc this.A équivaut à A
    donc ce qu'il voulait c'est lesInterventions = new List<ce que c'est>();
    instancier la collection la rend utilisable

    tu ne fais rien avec leLampadaire que tu recois, il faut le stocker aussi (et urgent aussi)
    le test pour appeler la méthode est bon


    dans du vrai code il arrive de ne pas faire de constructeur, il y en a un donc un par défaut qui ne demande aucun paramètre
    il arrive de faire un constructeur qui demande des paramètres, le constructeur par défaut n'existe donc plus, et ces paramètres sont dit obligatoire pour pouvoir instancier la classe
    il est aussi possible de faire plusieurs constructeurs avec des signatures différentes, et donc avoir un constructeur sans paramètre et plusieurs avec par exemple
    un constructeur peut en appeler un autre
    il est aussi possible de tester les paramètres pour être sûr qu'ils sont convenables avec par exemple
    if (telParamètre < 0 ) throw new argumentexception("telParamètre ne peut pas être inférieur à 0")
    ou if (autre is null) throw new argumentnullexception("autre ne peut pas être null")
    dans le cas d'un throw la classe n'est pas instanciée


    (signature = paramètres d'une méthode en nombre et en type)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. [Flash Pascal] Correction constructeur nickel
    Par Archimède dans le forum Flash Pascal
    Réponses: 6
    Dernier message: 17/05/2013, 20h57
  2. Réponses: 13
    Dernier message: 09/01/2011, 23h33
  3. Réponses: 15
    Dernier message: 23/06/2006, 13h57

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