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#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Points : 25
    Points
    25
    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
    Nouveau membre du Club
    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
    Points : 29
    Points
    29
    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 : 43
    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
    Points : 39 753
    Points
    39 753
    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
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    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 066
    Points : 4 233
    Points
    4 233
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Points : 25
    Points
    25
    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
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    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 066
    Points : 4 233
    Points
    4 233
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

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

  8. #8
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    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 : 822
    Points : 1 108
    Points
    1 108
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Points : 25
    Points
    25
    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

  10. #10
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    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 066
    Points : 4 233
    Points
    4 233
    Par défaut
    bein oui c'est évident tu ne peux pas spécifier un nom qui n'est pas dans les paramètres au mieux tu peux en créer si tu veux, mais la solution que je te propose te permet d'appeler tes paramètres de n'importe où dans ton appli mais plus simplement

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Je crois que kheironn m'a convaincu de l'infaisabilité de mon code...
    Helas je fais trainer mes centaines de lignes de code.

  12. #12
    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 : 43
    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
    Points : 39 753
    Points
    39 753
    Par défaut
    Je n'ai pas l'impression que tu aies lu ma réponse... Ou alors j'ai mal compris ce que tu voulais, mais dans ce cas il faudrait expliquer un peu plus clairement

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    @youtpout978 Exact j'avais pas vu. Cela va alleger ( un peu ) mon code. Merci

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    @tomlev Oui, oui j'ai bien lu ton message et c'est exactement ce que je voulais faire, sauf que c'est impossible.

    Pour le brush je me suis planté en voulant simplifier au max, la Font n'a rien à faire dans le Solidebrush, il s'agissait d'une couleur a vrai dire, mais n'ayant pas voulu multiplier les variables je me suis croisé les pinceaux.
    Merci de ton attention

    Pour vous remercier tous je vais ouvrir un autre thread aussi tiré par les cheveux.
    A tout de suite

  15. #15
    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 : 43
    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
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par MegaTen Voir le message
    @tomlev Oui, oui j'ai bien lu ton message et c'est exactement ce que je voulais faire, sauf que c'est impossible.
    Pourquoi impossible ?

+ 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