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

VB.NET Discussion :

collection dans une structure


Sujet :

VB.NET

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Points : 43
    Points
    43
    Par défaut collection dans une structure
    Bonjour,

    j'ai un module dans lequel je déclare une structure qui contient une collection mais je n'arrive pas à l'utiliser, quelque chose m'échappe et malgré aides et forums je trouve pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public Structure World
        Dim Countries as Collection
    End Structure
     
    Public TheWorld as New World
     
    Public Sub Initialisation()
        TheWorld.Countries.Add("France")
    End Sub
    j'ai l'erreur "L'exception System.NullReferenceException n'a pas été gérée"
    Quelle est mon erreur ?

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim Countries as New Collection
    soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Public Sub Initialisation()
        TheWorld.Countries = New Collection
        TheWorld.Countries.Add("France")
    End Sub

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Bonsoir,

    Le champ Countries n'est pas private par défaut ?

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    salut mon amigo
    je ne comprendre pas ton problème,mais j'ai déjà utilisé les Structure et voici une exemple:
    1- dans un module ecrite ce code
    Public Structure formateur
    Public mat_form As Integer
    Public nom As String
    Public prénom As String
    Public spec As String
    End Structure
    Public fo As New Collection
    et dans une nouvelle form avec 4 label (code,nom,prenom,profession) et bien sur 4 textbox est un button ajouter et inserer le code suivant:
    Dim form As formateur
    form.mat_form = CType(Me.TextBox1.Text, Integer)
    form.nom = Me.TextBox2.Text
    form.prénom = Me.TextBox3.Text
    form.spec = Me.TextBox4.Text
    fo.Add(form, form.mat_form)
    Voici tous ce que je connais sur les structure et aussi tu peut utiliser les classes,et bon nuit

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Points : 43
    Points
    43
    Par défaut
    Non, ce n est pas ce que je veux.
    Je veux que ma structure world contienne une collection Countries. Donc logiquemet je doit declarer cette collection a l interieur de la declaration de world, et non pas dans la procedure initialisation(). Sinon quand je ferais un TheWorld.Countries.Clear() il va me dire que la collection Countries n est pas membre de la structure TheWorld !
    Donc comment dois-je m y prendre pour que la collection Countries soit membre de TheWorld ??

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Structure World
        Dim Countries as Collection = new Collection()
    End Structure
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  7. #7
    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
    Citation Envoyé par harz62 Voir le message
    Bonsoir,

    Le champ Countries n'est pas private par défaut ?

    dim seul = public je crois
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Points : 43
    Points
    43
    Par défaut
    OK ca marche avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shared Countries as Collection = New Collection
    Je sais pas trop a quoi ca correspond mais bon ca marche c' est l'essentiel

  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
    "L'exception System.NullReferenceException n'a pas été gérée" veut dire que tu as un objet que tu veux utiliser mais qui est à nothing donc inutilisable

    dans ta structure tu avais fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim machin as collection
    dim sert à dire ce que c'est mais ne permet pas de l'utiliser
    machin.add plante donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim machin as new collection
    là ca dit aussi ce que c'est et ca le rend utilisable au passage (new instancie un objet)
    machin.add peut fonctionner



    le shared veut dire que toutes les instances auront la meme valeur pour la variable

    donc que tous les new world que tu fera auront les meme countries
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Points : 43
    Points
    43
    Par défaut
    Merci.
    J'ai bien compris l'histoire du shared. Pour mon appli ça marche parce que je n'ai qu'un seul "World".
    Mais pour ma culture, si je veux créer une autre instance "World" qui aie des differents "Countries" que "TheWorld", comment il faut faire vu qu'avec la declaration shared toutes les instances "World" partagent la même collection "Countries" ? Avec une classe à la place d'une structure peut être ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Points : 43
    Points
    43
    Par défaut
    Ca y'est j'ai trouvé. Enfin pas moi, car j'avais la solution sous les yeux (pardon smyley) mais j'avais mal lu donc ça marchait pas.
    Mon code doit donc être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Public Structure World
        Dim Countries as Collection
    End Structure
     
    Public TheWorld as New World
     
    Public Sub Initialisation()
        TheWorld.Countries = New Collection
        TheWorld.Countries.Add("France")
    End Sub
    Merci smyley et merci aux autres.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 01/08/2006, 18h06
  2. Réponses: 7
    Dernier message: 21/12/2005, 16h44
  3. Enlver un noeud dans une structure XML
    Par Sharingan dans le forum ASP
    Réponses: 4
    Dernier message: 20/12/2004, 08h08
  4. donée de plusieur vecteur dans une structure ??
    Par lipczynski dans le forum C++
    Réponses: 5
    Dernier message: 13/08/2004, 08h17
  5. type void* dans une structure
    Par barbapapaz dans le forum C
    Réponses: 3
    Dernier message: 16/07/2004, 16h11

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