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 :

Remplacer un nom de champ fixe par une variable


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Par défaut Remplacer un nom de champ fixe par une variable
    Bonjour,

    Je vais tacher d'être plus clair que le titre.

    Voici un bout de code pour récupérer la valeur d'un variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Font font = Properties.Settings.Default.Incr_Font1;
    SolidBrush brush = new SolidBrush(Properties.Settings.Default.Incr_Font1);
    Ici Incr_Font1 est le nom d'une variable stockée dans le fichier paramètre du projet.

    Je voudrais pouvoir paramétrer le nom de ce champ de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //Font MyFont = ... ou string MyFont = ...
    Font font = Properties.Settings.Default.MyFont;
    SolidBrush brush = new SolidBrush(Properties.Settings.Default.MyFont;
    Le compilateur rejette ce type de structure, puisqu'il n'existe pas de variable MyFont dans le fichier paramètre.

    Existe-t-il une manière de contourner cette écriture?

    Cela me permettrais de réduire de façon considérable mon volume de code.

    Merci pour vos remarques et suggestion.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 23
    Par défaut
    je comprends pas vraiment ce que tu veux faire.
    tes deux ligne de code sont identique MyFont est une valeur qui doit se trouvée dans ton fichier de config est que tu peux modifié depuis celui-ci.
    Tu peux préciser ce que tu cherche a faire STP

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Pas sûr d'avoir tout compris... tu veux récupérer un setting par son nom ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Font font = (Font)Properties.Settings.Default["le_nom_du_setting"];
    (par contre je comprends pas trop ton histoire de brush... une SolidBrush ne prend pas de Font en paramètre)

  4. #4
    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
    bein déjà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Font font = Properties.Settings.Default.Incr_Font1;
    SolidBrush brush = new SolidBrush(font);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SolidBrush brush = new SolidBrush(Properties.Settings.Default.Incr_Font1);
    quel utilité de récupérer ta font 2 fois?

    et si le nom actuel ne te convient pas libre à toi d'en ajouter de nouveau dans le fichier paramètre avec les noms que tu souhaites

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Par défaut
    Bonjour,
    J'avoue que c'est un peu tirer par les cheveux.
    Pour recuperer une variable stockées dans .cong j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Properties.Setting.Defaut.Var1;
    Var 1 est un champ dans .conf qui contient une valeur XXX
    Je veux recupérer ma valeur XXX en codant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String MyVar = Var1;
    Properties.Setting.Defaut.MyVar;
    Car je peux recupérer facilement la valeur de MyVar

    Message d'erreur:
    Properties.Setting ne contient pas de definition pour MyVar....
    Ce qui est vrai

    Ce bout de code est reproduit des dizaines de fois ( 16 boutons de sélection
    et toutes leurs actions possibles...)

  6. #6
    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
    tu peux créer une classe avec des paramètres static comme ça tu les appel plus simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class MesParametres
        {
           public static string MyVar
           {
               get { return Properties.Settings.Default.var1; }
           }
     
        }
    tu auras juste à les appeler comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string myvar = MesParametres.MyVar;

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Par défaut
    Cela commence à me plaire. Je vais tester. A+

  8. #8
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 823
    Par défaut
    Pour compléter, les propertysettings, c'est du typage fort, donc tu ne peux qu'appeler les éléments qui s'y trouvent !
    Ce que tu demandes c'est comme faire ça :
    class A{
    prop toto
    prop titi
    }
    new A().tutu.
    tutu n'est pas défini dans A...
    la seule chose, c'est que les valeurs viennent du fichier de config (ou des valeurs compilées par défaut)

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Par défaut
    Et non
    Même punition.

    return Properties.Settings.Default.Var1; réclame toujours un nom de variable déjà inclus dans .Setting

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

Discussions similaires

  1. [AC-2013] remplacer le nom d'un formulaire par une variable dans un Public Sub
    Par GuyDuLac dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/10/2014, 17h23
  2. [AC-2013] Nom de champ défini par une variable
    Par JulieLesp dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 25/07/2014, 08h47
  3. [XL-2010] Remplacer le nom d un onglet par une variable
    Par toto92 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/02/2014, 16h40
  4. Remplacer nom d'un forulaire par une variable
    Par kevain_09 dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/06/2007, 14h06
  5. Comment remplacer le nom d'un controle par une chaine ?
    Par roico dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/04/2007, 11h49

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