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

Windows Forms Discussion :

[VB.net] Comment créer dans une structure une collection de type utilisateur ?


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 19
    Points : 14
    Points
    14
    Par défaut [VB.net] Comment créer dans une structure une collection de type utilisateur ?
    Bonjour,

    Le titre est un peu long, mais il contient la question ...
    J'aimerais que vous me mettiez sur la piste pour définir le type de variable dans une structure, hashtable, stack ou autre.

    Merci beaucoup ...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Je ne suis pas sure d'avoir bien compris ta question. Mais le type de données d'une hashtable, stack ou autre, correspond au type de données que tu lui a inseré. C'est à dire, si tu lui mets ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int valeur = 1;
    hashtable myHT = new hashtable() ;
     
    myHT.Add("un", valeur) ;
    Tu auras des données de type int.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Points : 269
    Points
    269
    Par défaut
    - ArrayList : c'est une sorte de tableau facile à utiliser et pouvant contenir tout type d'objet. Etant donné que c'est une collection d'objet généric ca va te forcer à faire un cast de ta variable avant de pouvoir l'utiliser.
    --> C'est pratique, ca stock tout (entier, string, objet en même temps)

    - List<String> : C'est un tableau aussi mais il ne peut contenir que des String, donc pas besoin de cast avant d'utiliser ta variable. Pour ma part je trouve ca plus pratique si tu sais déjà le type d'objet que tu va y stocker.
    --> Si tu connais le type c'est mieu.

    - Stack<String> : C'est une "Pile" donc LIFO, elle ne pourra contenir qu'un seul type (ici String). L'accès au données est restreint, tu y ajoutes un élément en haut de la pile et tu ne peux retirer que le dernier élément ajouté (LIFO).

    En gros le choix de la structure de stockage ne dépend que de toi, des infos que tu va y stocker et des traitements que tu va y faire.

    Bonne chance !
    « L’erreur est humaine, mais un vrai désastre nécessite un ordinateur »

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Biloutor
    - List<String> : C'est un tableau aussi mais il ne peut contenir que des String, donc pas besoin de cast avant d'utiliser ta variable.
    Petite réctification: il ne contient que des variables dont tu lui spcifies le type lors de sa déclaration.

    Rien ne t'empêche de créer uen type Utilisateur et de créer une List d'utilisateur:

    List<Utilisateur> list = new List<Utilisateur>();

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Points : 269
    Points
    269
    Par défaut
    tout à fait le String c'etait pour l'exemple, mais c'est vrai que c'était pas super clair. Merci pour cette précision
    « L’erreur est humaine, mais un vrai désastre nécessite un ordinateur »

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Merci tout le monde, j'ai utilisé une list et tout marches très bien.

    Le problème est résolu ...

    Edit : je retire ce que j'ai dit.

    Voici un exemple fictif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Private Structure valeur
            Dim a As Integer
            Dim b As Integer
            Dim c As String
            Dim d As Boolean
        End Structure
        Public Structure Test
            Public Client As String
            Public NoDOrdre As Integer
            Public Items As List(Of valeur)
        End Structure
    J'obtient une erreur : Erreur 1, 'Items' ne peut pas exposer le type 'valeur' dans namespace 'WindowsApplication1' à travers structure 'Test'.
    Par contre, tout marches super quand j'utilise dans une sub :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Dim Items As New List(Of valeur)
    Merci

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    J'ai réglé le problème précédent sauf que je me bute à un autre problème.

    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
    19
    20
    Public Class Form1
        Public Structure valeur
            Dim a As Integer
            Dim b As Integer
            Dim c As String
            Dim d As Boolean
        End Structure
        Public Structure Test
            Public Client As String
            Public NoDOrdre As Integer
            Public y As List(Of valeur)
        End Structure
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim c As New Test, b As New valeur, i As Short
            For i = 0 To 5
                c.y.Add(b)        
            Next
        End Sub
    End Class
    Voici ce que j'ai besoin, sauf que quand j'arrives à la ligne en gras, j'obtiens l'erreur suivante : La référence d'objet n'est pas définie à une instance d'un objet.

    Merci d'avance

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Voilà, j'ai réglé mon dernier problème seul ...

    z'the solution :

    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
    19
    20
    21
    22
    Public Class Form1
        Public Structure valeur
            Dim a As Integer
            Dim b As Integer
            Dim c As String
            Dim d As Boolean
        End Structure
        Public Structure Test
            Public Client As String
            Public NoDOrdre As Integer
            Shared y As New List(Of valeur)
        End Structure
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim b As New valeur, i As Short
            Dim Items As New List(Of valeur)
            Items.Add(b)
            For i = 0 To 5
                Test.y.Add(b)
            Next
        End Sub
    End Class
    Utiliser Shared au lieu de public

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

Discussions similaires

  1. [VB.Net] Comment récupérer dans un textbox une donnée BDD ?
    Par zzzmoi dans le forum Accès aux données
    Réponses: 10
    Dernier message: 08/07/2007, 02h08
  2. [VB.Net] Comment créer une variable ?
    Par Fullmetal82 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 26/01/2007, 10h26
  3. Réponses: 1
    Dernier message: 26/08/2006, 09h18
  4. [VB.Net] Comment insérer dans une BD ?
    Par zzzmoi dans le forum Accès aux données
    Réponses: 6
    Dernier message: 29/07/2006, 10h39
  5. [VB.NET] Comment créer une table dans base de données ?
    Par ptitesouris dans le forum VB.NET
    Réponses: 3
    Dernier message: 03/05/2006, 08h46

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