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 :

Bonne pratique - Les constantes en C#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut Bonne pratique - Les constantes en C#
    Bonjour,

    dans mon projet j'ai plusieurs class qui utilises les mêmes constantes et si je déclare simplement une constante dans un class je serai obligé de faire de même pour les autres class, alors mon souci est le suivant :

    Qu'elle est la bonne pratique pour générer un ensemble de constantes partagé par plusieurs class ?

    j'ai plusieurs idées telque des constantes dans le config, une class static, un fichier de ressource...

    mais j'aime utilisé la bonne manière !

    Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    si c'est des constantes pour toute l'application le mieux est de les mettre dans les ressources ou dans les paramètres comme ça si un jour tu doit les modifier, tu as juste à les modifier au niveau des ressources ou des paramètres et tu n'aura rien d'autre à faire

    Pour ce faire:
    clique droit sur ton projet-> Propriétés ->Onglet Ressources ou Paramètres

    Pour y accéder en code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Properties.Resources.LeNomDeTaConstante
    ou dans le cas des paramètres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Properties.Settings.Default.LeNomDeTaConstante

  3. #3
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    - config
    Permet de configurer ton application. Ce ne sont pas des constantes mais des paramètres.

    - Class static
    Ca permet de regrouper toutes tes constantes facilement.

    - Fichier de ressource
    Plutôt fait pour stocker des chaines de caractères pour l'UI ou des images que des constantes.

    si je déclare simplement une constante dans un class je serai obligé de faire de même pour les autres class
    Il suffit de mettre ta constante public pour pouvoir l'utiliser dans d'autres classes

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    même avis que meziantou



    De plus parfois je fais une dll a part pour ces constantes et autres tools utilisé par mon projet

  5. #5
    Membre émérite
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Par défaut
    +1 meziantou pour les ressources...

    En ce qui concerne les classes statiques remplies de constantes, elles ont un gros désavantage par rapport à l'utilisation du app.Config fourni par le framework, c'est que chaque modification d'une constante entraine une recompilation (et donc un redéploiement si tu as une version en prod).

    Je te conseillerais donc le fichier de config :
    - Création
    - System.Configuration

    Une fois que tu as importé cette dll dans ton projet, il te suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String taPropriété = ConfigurationManager.AppSettings["leNomDeTaPropriété"];

  6. #6
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Merci pour vos réponses rapides.

    en faite je travaille sur un projet Silverlight donc le problème de deploiement n'est trop génant car c'est un .xap qu'il faut deplyer.

    pour le fichier de ressource je suis tout à faire d'acord que c'est un moyen pour stocker des infos UI

    pour le fichier de config, VS ne propose pas un fichier de config pour un projet SL

    donc la solution que je peut prendre c'est une class static !

  7. #7
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Citation Envoyé par Gurdil le nain Voir le message
    En ce qui concerne les classes statiques remplies de constantes, elles ont un gros désavantage par rapport à l'utilisation du app.Config fourni par le framework, c'est que chaque modification d'une constante entraine une recompilation (et donc un redéploiement si tu as une version en prod).
    C'est pour cela que ça s'appelle une constante. Constant = Ne change pas.
    S'il y a un risque que la "constante" change ce n'est plus une constante mais plutôt un paramètre de l'application (ex: chaine de connexion, adresse ip d'une machine, etc).
    Il faut faire attention à bien choisir s'il s'agit d'une constante ou non.

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

Discussions similaires

  1. Projets informatique : les bonnes pratiques
    Par elitost dans le forum Débats sur le développement - Le Best Of
    Réponses: 345
    Dernier message: 18/10/2011, 16h08
  2. [C#/ASP.Net/DAL] Quelles sont les bonnes pratiques ?
    Par fouhaa dans le forum Accès aux données
    Réponses: 4
    Dernier message: 13/07/2006, 23h54

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