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 :

déclarer des noms de variables de façon dynamique et surtout pouvoir les utiliser après


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 57
    Par défaut déclarer des noms de variables de façon dynamique et surtout pouvoir les utiliser après
    bonjour,

    voici mon soucis.
    Je souhaite dessiner des cubes sur des fichiers DXF (autocad)
    l'architecture du fichier étant assez opaque, j'ai trouvé une librairie qui le fait très bien ... pour 1 face !

    je vais avoir des milliers de face a tracer.

    voici le bout de code utilisé pour tracer une face :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private static void Face3d()
            {
     
                DxfDocument dxf = new DxfDocument();
                Face3d face3d = new Face3d();
                face3d.FirstVertex = new Vector3(0, 0, 0);
                face3d.SecondVertex = new Vector3(1, 0, 0);
                face3d.ThirdVertex = new Vector3(1, 1, 0);
                face3d.FourthVertex = new Vector3(0, 1, 0);
                dxf.AddEntity(face3d);
                dxf.Save("face.dxf");
                dxf.Save("face return.dxf");
     
            }
    je pensais faire une boucle en faisant juste varier mes chiffres correspondant aux x y z

    mais le soucis, c'est sur cette ligne
    si l'objet a le meme nom, ça bloque :/

    j'ai 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
     
                DxfDocument dxf = new DxfDocument();
     
                Face3d face3d = new Face3d();
                face3d.FirstVertex = new Vector3(0, 0, 0);
                face3d.SecondVertex = new Vector3(1, 0, 0);
                face3d.ThirdVertex = new Vector3(1, 1, 0);
                face3d.FourthVertex = new Vector3(0, 1, 0);
                dxf.AddEntity(face3d);
     
                Face3d face3d2 = new Face3d();
                face3d2.FirstVertex = new Vector3(0, 0, 0);
                face3d2.SecondVertex = new Vector3(1, 0, 0);
                face3d2.ThirdVertex = new Vector3(1, 1, 0);
                face3d2.FourthVertex = new Vector3(0, 1, 0);
                dxf.AddEntity(face3d2);
                dxf.Save("face.dxf");
                dxf.Save("face return.dxf");
    ça fonctionne et j'ai bien mes deux faces.
    il faut donc que je trouve comment déclarer des miliers de variable de type "Face3d"

    j'ai cherché sur le net et on donne des solution a base list ou de dictionnaire.

    mais créer la list de nom de variable c'est pas un soucis, c'est plutot que je ne sais pas comment en profiter
    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Face3d face3d[0] = new Face3d();
    face3d étant une liste de string, ça marche pas :/

    si quelqu'un a une idée je suis preneur.

    merci

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    C'est une question récurrente, une petite recherche sur le forum t'aurais donné la solution directement...

    En l'état et tel que tu souhaites le faire, ce n'est pas possible. Il faut pour cela utiliser un Dictionary :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    var myVariables = new Dictionary<string, MyType>();
    Tu peux le populer comme suit :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    myVariables.Add("var1", object1);
    myVariables.Add("var2", object2);
    Ensuite pour l'utiliser :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    var myVar = myVariables["var" + index];
    Ainsi myVar contiendra l'objet souhaité.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. Creation Dynamique des noms de variables
    Par Jessica12 dans le forum MATLAB
    Réponses: 7
    Dernier message: 27/11/2012, 06h07
  2. Réponses: 2
    Dernier message: 02/04/2007, 09h56
  3. Créer des noms de variables dynamiquement avec JSP
    Par Zakapatul dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/02/2007, 14h24
  4. [Convention]Préfixage des noms de variables
    Par javaSudOuest dans le forum Langage
    Réponses: 5
    Dernier message: 18/11/2005, 15h52
  5. Generer des noms de variables avec une boucle
    Par moutanakid dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/07/2004, 17h45

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