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 :

C# / VS2008 / .net : la bonne facon de faire ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut C# / VS2008 / .net : la bonne facon de faire ?
    salut,

    dans mon Namespace Utile j'ai une classe Debug qui a besoin d'un type/struct/enum/class/... qui peut prendre une seule valeur sur 4 possibilités.

    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
        /// <summary>
        /// Spécifie les différents niveau du message <see cref="Debug.setTypeDate"/>
        /// </summary>
        [Flags]
        [ComVisible(true)]
        public enum Niveau
        {
            /// <summary>
            /// Information
            /// </summary>
            Info = 0,
            /// <summary>
            /// Avertissement
            /// </summary>
            Warning = 1,
            /// <summary>
            /// Erreur
            /// </summary>
            Error = 2,
            /// <summary>
            /// Erreur fatale
            /// </summary>
            Fatal = 3,
        }

    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
        /// <summary>
        /// Spécifie les différents niveau du message <see cref="Debug.setTypeDate"/>
        /// </summary>
        public struct Niveau
        {
            /// <summary>
            /// Information
            /// </summary>
            public const uint Info = 0;
            /// <summary>
            /// Avertissement
            /// </summary>
            public const uint Warning = 1;
            /// <summary>
            /// Erreur
            /// </summary>
            public const uint Error = 2;
            /// <summary>
            /// Erreur fatale
            /// </summary>
            public const uint Fatal = 3;
        }
    j'ai aussi essayé un attribut public dans ma classe Debug mais je ne peux pas le déclarer comme constant ni en readonly :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            public enum Niveau { Info, Warning, Error, Fatal };

    qu'elle est la manière la plus "normal" de le déclarer en C# ?

    merci

  2. #2
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Salut,

    pour moi, ce serait une enum, donc, dans un coin, tu declares l'enum:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [Flags]
    [ComVisible(true)]
        public enum NiveauDeLog{
            Info = 0,
            Warning = 1,
            Error = 2,
            Fatal = 3
        }
    Et dans ton autre classe, tu as une propriété de type NiveauDeLog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public Class Debug{
    ...
    public NiveauDeLog LogLevel;
    ...
    }
    C'etait ca, la question ?

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Une structure n'est adaptée ici.

    Je dirais la première sans l'attribut [Flags] (dans ce cas la 1ère et la dernière sont identiques).

    Par contre si tu veux utiliser l'attribut [Flags] utilise les puissances de 2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [Flags]
    public enum Niveau
    {
         Info = 1,
         Warning = 2,
         Error = 4,
         Fatal = 8
    }

  4. #4
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    ok, donc structure/classe = poubelle
    la seule bonne maniere de faire ca est de déclarer une énumération.

    j'ai repris bêtement un enum de .net existant pour avoir un modèle sans connaitre la signification des attributs, dans mon cas puisque je ne peux avoir qu'une seule valeur le [flag] ne m'est pas utile ...

    merci

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/04/2006, 11h39
  2. [VB.NET] DataGridView à double entrée: comment faire?
    Par BillyboyK dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/04/2006, 09h06
  3. [ADO.Net][C#/SQL 2005] Comment faire INSERT avec variable ?
    Par hduchemin dans le forum Accès aux données
    Réponses: 1
    Dernier message: 25/01/2006, 17h34
  4. [VB.NET]La bonne gestion des forms
    Par Wintermute dans le forum Windows Forms
    Réponses: 11
    Dernier message: 13/01/2004, 16h35

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