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 :

Contrôle d'une valeur dans le constructeur


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut Contrôle d'une valeur dans le constructeur
    Salut;
    Voici mon petit problème, j'ai créé une classe DonneesSTEP avec deux constructeurs chacun d'eux appel une méthode Initialise dans laquelle je voudrais contrôler une valeur "Val_analyse "qui doit être supérieure ou égale à la borne inférieure et inférieure ou égale à la borne supérieure mais ça na pas marchait comme j'espéré.

    Voici le code
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    using System;
     
    namespace STEP_DOS {
        public class DonneesSTEP {
            // attributs
            private string designation;
            private string abbreviation;
            private double val_min;  
            private double val_max;
            private double val_analyse;
     
            // constructeurs
            public DonneesSTEP(string Des, string Abb, double v_min, double v_max, double v_anal) {
                Initialise(Des, Abb, v_min, v_max, v_anal);
            }
     
            public DonneesSTEP(DonneesSTEP ds) {
                Initialise(ds);
            }
     
            // méthode
            public void Initialise(string Des, string Abb, double v_min, double v_max, double v_anal) {
                this.designation = Des;
                this.abbreviation = Abb;
                this.val_max = v_max;
                this.val_min = v_min;
                if (v_anal < v_min || v_anal > v_max) {
                    throw new Exception("Valeur invalide");
                } else this.val_analyse = v_anal;
            }
     
            public void Initialise(DonneesSTEP ds) {
                designation = ds.designation;
                abbreviation = ds.abbreviation;
                val_min = ds.val_min;
                val_max = ds.val_max;
                val_analyse = ds.val_analyse;
            }
     
            // propriétés
            public string Designation {
                get { return designation; }
                set { designation = value; }
            }
     
            public string Abbreviation {
                get { return abbreviation; }
                set { abbreviation = value; }
            }
     
            public double Val_min {
                get { return val_min; }
                set { val_min = value; }
            }
     
            public double Val_max {
                get { return val_max; }
                set { val_max = value; }
            }
     
            public double Val_analyse {
                get { return val_analyse; }
                set { // val_max =< val_alal >= val_min
                        if (value < val_min || value > val_max) {
                            throw new Exception("Valeur (" + value + ") invalide");
                        }
                    val_analyse = value; 
                    }
            }
     
            public void Identifie() {
                Console.WriteLine("[{0}, {1}, {2}, {3}, {4}]", designation, abbreviation, val_min, val_max, val_analyse);
            }
        }
    }
    et pour le test

    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
    using System;
     
    namespace STEP_DOS {
        class Program {
            static void Main(string[] args) {
                DonneesSTEP ds1 = new DonneesSTEP("Maière en suspension", "MES", 5, 10, 3.5);
                ds1.Identifie();
     
                DonneesSTEP ds2 = new DonneesSTEP(ds1);
                try {
                    ds2.Val_analyse = 18.58;
                }
                catch (Exception E) {
                    Console.Error.WriteLine(E.Message);
                }
                ds2.Identifie();
     
                DonneesSTEP ds3 = new DonneesSTEP("Demande Chimique en Oxygène", "DCO", 0, 3, 6.9);
                ds3.Identifie();
            }
        }
    }
    J’avoue que je suis débutant dans le monde c#.

    Merci de me soutenir

  2. #2
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    dans ta classe ajoute la fonction de verif suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    static bool IsValueValid(int _min, int _max, int _value)
    {
    (_value < _min || _value > _Max) ? false : true;
    }
    et le test :

    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
     
    class Program {
            static void Main(string[] args)
    {
     
    int nombre = .......;
    if (CMaclasse.IsValueValid(min,max,nombre))
    {
    cw.("valeur ok");
    }
    else
    {
    cw.("valeur ko");
    }
    }
    }

  3. #3
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    merci ZaaN mais y'a t-il un moyen de faire ça dans le constructeur?

  4. #4
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    oui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class MaClasse
    {
       MaClasse(int max, int min , int value)
       {
                bool taReponse =  Maclasse.IsValueValid(min,max,value);
       }
       static protected bool IsValueValid(int _min, int _max, int _value)
       {
                (_value < _min || _value > _Max) ? false : true;
       }
    }
    tu peux aussi stocker les valeur dans des membres et rendre la fonction de verif non static.

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

Discussions similaires

  1. Fonction de contrôle si une valeur existe dans une Array
    Par DMadzar dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/08/2007, 11h35
  2. [ Struts ] recuperer une valeur dans une url?
    Par njac dans le forum Struts 1
    Réponses: 2
    Dernier message: 02/06/2004, 14h24
  3. Réponses: 3
    Dernier message: 28/01/2004, 14h55
  4. Lire une valeur dans le registre
    Par John.s dans le forum C
    Réponses: 2
    Dernier message: 26/11/2003, 19h55
  5. Prendre une valeur dans la grappe XML
    Par Sandrine75 dans le forum XMLRAD
    Réponses: 7
    Dernier message: 21/05/2003, 10h26

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