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

 .NET Discussion :

Mettre les noms des objets dans un tableau de String


Sujet :

.NET

  1. #1
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut Mettre les noms des objets dans un tableau de String
    Bonjour. Je vous souhaite un agréable dimanche
    Je viens à vous pour résoudre un problème de débutant
    J'ai une classe Substance (avec deux attributs) dans laquelle j'ai créé 5 objets: Chlore, Sodium,Calcium, Phosphore et Urée.
    J'ai déclaré un tableau d'objets Substance:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim tabloSubstance() As Substance
    tabloSubstance={Chlore, Sodium,Calcium, Phosphore, Urée}
    Maintenant je veux créer un tableau de String et arriver à ce résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim tabloString() = {"Chlore", "Sodium", "Calcium", "Phosphore", "Urée"}
    Existe il une fonction toute prête pour faire cela?
    Bien-sur je peux arriver au même résultat en ajoutant un attribut nom à ma classe Substance, déclarer les objets de cette façon: substance1,substance2,substance3, ..... puis je fais une boucle for: tabloString(i)=tabloSubstance(i).nom
    Merci de votre aide
    J'apprends la programmation pour le plaisir

  2. #2
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Bonjour
    Personne n'a une idée?
    J'apprends la programmation pour le plaisir

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    pas sur que le nom d'origine des variables soit trouvable dans la pile
    quand bien même, c'est pas simple
    et ce n'est pas spécialement une bonne idée, alors que la propriété nom c'est simple
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Je pense que NameOf(maVariable) pourrais faire l'affaire: https://msdn.microsoft.com/en-us/lib...or=-2147217396 .

    Par contre je ne suis pas sur du tout que ce soit une bonne idee.

  5. #5
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Bonjour
    Merci de votre aide.
    Je me contenterai de ma solution avec la boucle.
    A+
    J'apprends la programmation pour le plaisir

  6. #6
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Bonsoir
    Certes j'ai mis fin à cette discussion, mais cela ne veut pas dire que le problème est résolu.
    Je pense que ...... pourrais faire l'affaire
    pas sur que .......
    Merci à ce site formidable
    J'apprends la programmation pour le plaisir

  7. #7
    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 : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    NameOf permet de recuperer le nom d'une variable en tant que string. Donc par exemple :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim maVar = String.Empty
    Dim nomDeLaVariable = NameOf(maVar)
     
    ' Donc on a : nomDeLaVariable = "maVar", sous forme de string.
    Lors de la compilation, NameOf(maVar) est remplace par "maVar" directement. En IL on observe une instruction du genre : ldstr "maVar".

    Donc c'est une bonne idee de l'utiliser lorsque cela est necessaire, et si je ne m'abuse c'est la solution a ton probleme.
    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.

  8. #8
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Bonsoir tout le monde
    S'il vous plait, est ce que ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim maVar = String.Empty
    Dim nomDeLaVariable = NameOf(maVar)
     
    ' Donc on a : nomDeLaVariable = "maVar", sous forme de string.
    marche sous Visual Studio 2010? car il me donne une erreur:

    Erreur 1 'NameOf' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection. C:\Users\Forex\Documents\Visual Studio 2010\Projects\nameOf\nameOf\Module1.vb 13 29 nameOf

    Merci
    J'apprends la programmation pour le plaisir

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    non, nameof est apparu avec vs 2015
    mais tu dois pouvoir migrer sur vs 2015 (vs 2015 community est gratuit, et migrer un projet ne pose pas de soucis)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Bonsoir. Merci pour l'info.
    J’essaierai d'installer vb 2015 ce week-end et je vous informerai des nouvelles
    Salut
    J'apprends la programmation pour le plaisir

  11. #11
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Bonsoir
    Après plusieurs tentatives, j'ai enfin réussi à installer VB 2015.
    Comme cité dans mon premier message, je veux avoir un tableau de String contenant les noms des éléments (objets) contenu dans un autre tableau (tableau d'objets). J'ai donc essayé NameOf, mais j'ai remarqué que ça marche avec une variable tout court mais pas avec une variable contenue dans un tableau.
    Illustration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
         Sub Main()
            Dim nbr1 As Integer = 25
            Console.WriteLine(NameOf(nbr1))
            Console.ReadKey()
            'Là ça marche
        End Sub
    Le code suivant ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Sub Main()
            Dim nbr1 As Integer = 25
            Dim nbr2 As Integer = 20
            Dim nbr3 As Integer = 18
            Dim nbr4 As Integer = 32
            Dim tablo() As Integer = {nbr1, nbr2, nbr3, nbr4}
            Console.WriteLine(NameOf(tablo(0))) 'Là ça donne une erreur
            Console.ReadKey()
      End Sub
    Il y a sûrement une chose qui m'échappe mais je ne sais pas quoi
    Merci de votre aide
    J'apprends la programmation pour le plaisir

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ca ne peut pas fonctionner avec les variables que tu as stocké dans un tableau, seules les valeurs sont mises dans le tableau
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Bonjour
    Citation Envoyé par Pol63 Voir le message
    ca ne peut pas fonctionner avec les variables que tu as stocké dans un tableau, seules les valeurs sont mises dans le tableau
    Dans ce cas, pour avoir un tableau de String {"nbr1", "nbr2", "nbr3", "nbr4"} à partir d'un tableau d'objet {nbr1, nbr2, nbr3, nbr4} je dois instancier les éléments du tableau un à un sans utiliser la boucle for.
    Dans ce cas je ne vois pas l'intérêt de NameOf
    NB: je considère dans ce cas que nbr1,... sont des objets et non des entiers
    J'apprends la programmation pour le plaisir

  14. #14
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Bonjour.
    Je suppose que mon problème n'a pas de solution
    Je ferme donc cette discussion
    J'apprends la programmation pour le plaisir

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/04/2014, 22h32
  2. Réponses: 2
    Dernier message: 28/06/2010, 18h27
  3. [Debutant] Stocker des objets dans un tableau à plusieurs indices
    Par Invité dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 27/09/2006, 18h04
  4. Ecrire les noms des fichiers dans une colonne
    Par REGIMBAL dans le forum Access
    Réponses: 1
    Dernier message: 20/04/2006, 11h29
  5. J'ai pas les infos des objets dans l'éditeur
    Par mister3957 dans le forum MFC
    Réponses: 3
    Dernier message: 20/02/2006, 19h43

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