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 :

Problème d'initialisation d'une instance


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Trader / Formateur / Développeur Options CBOE
    Inscrit en
    Septembre 2018
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Trader / Formateur / Développeur Options CBOE
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 86
    Par défaut Problème d'initialisation d'une instance
    Bonjour,

    Question de débutant: qu'ai je oublié ci-dessous afin d'initialiser ma "array" de NewStruct ?
    Je pensais que Redim en VB était plus qu'une simple déclaration et initialisait aussi l'objet.
    Merci d'avance.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Public Class Form1
        Public Class Newstruct
            Private elt1 As String
            Private elt2 As Integer
            Public Property pElt1()
                Get
                    Return elt1
                End Get
                Set(value)
                    elt1 = value
                End Set
            End Property
            Public Property pElt2()
                Get
                    Return elt2
                End Get
                Set(value)
                    elt2 = value
                End Set
            End Property
        End Class
        Public Arr() As Newstruct
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            ListBox1.Items.Clear()
            ReDim Arr(15)
            For i = 0 To 14
                Arr(i).pElt1 = 'CStr(i + 1)
                Arr(i).pElt2 = 2 * i
                ListBox1.Items.Add(Arr(i).pElt1)
                ListBox1.Items.Add(Arr(i).pElt2)
            Next
        End Sub
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Arr = Nothing
            Close()
        End Sub
    End Class

  2. #2
    Membre expérimenté Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Par défaut
    Bon déjà, y'a l'apostrophe de trop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Arr(i).pElt1 = 'CStr(i + 1)
    il faut que tu passes par un objet intermédiaire que tu vas stocker dans ton tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ReDim Arr(15)
     
            Dim Struct = New Newstruct
            For i = 0 To 14
                Struct.pElt1 = "essais" & CStr(i + 1)
                Struct.pElt2 = 2 * i
                Arr(i) = Struct
                ListBox1.Items.Add(Arr(i).pElt1)
                ListBox1.Items.Add(Arr(i).pElt2)
            Next

  3. #3
    Membre confirmé
    Homme Profil pro
    Trader / Formateur / Développeur Options CBOE
    Inscrit en
    Septembre 2018
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Trader / Formateur / Développeur Options CBOE
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 86
    Par défaut
    Merci Elthorn !
    Ça doit alors être un constructor manquant ? Peut-être faudrait il que j'en crée un ? En tout cas ça marche en effet avec le copy constructor.
    Il faut quand même instancier l'objet intermédiaire.

  4. #4
    Membre expérimenté Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Par défaut
    En fait quand on écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Arr() As Newstruct
    on crée un conteneur d'objet mais pas les objets qu'il contient
    il faut donc a un moment ou un autre créer les objets pour les placer dans le conteneur, d'où le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Struct = New Newstruct
    Je pense que c'est pour cela que pour la création de tableau on ne met pas le terme New.
    En fait cela agit un peu comme une collection, un list of. En tout cas c'est comme cela que je le comprends.

  5. #5
    Membre confirmé
    Homme Profil pro
    Trader / Formateur / Développeur Options CBOE
    Inscrit en
    Septembre 2018
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Trader / Formateur / Développeur Options CBOE
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 86
    Par défaut
    Merci Elthorn. Il y a encore quelque chose qui m'échappe.
    Je ne comprends pas pourquoi je n'arrive pas à récupérer correctement les éléments individuels de la matrice d'objets.
    Sans doute encore une bêtise de ma part...
    Fichiers attachés Fichiers attachés

  6. #6
    Membre expérimenté Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Par défaut
    Salut,

    il faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim ns As New Newstruct
    dans la boucle (et non avant) pour recréer un nouvel élément à chaque fois sinon il stocke le même élément dans une nouvelle case du tableau et fait évoluer le contenu de l'élément à chaque boucle.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For i = 0 To UBound(Arr) - 1
                Dim ns As New Newstruct
                ns.pElt1 = CStr(i + 1)
                ns.pElt2 = 2 * i
                Arr(i) = ns
                'ListBox1.Items.Add(Arr(i).pElt1)
                ListBox1.Items.Add(Arr(i).pElt2)
    Next
    C'est une erreur de ma part lorsque je t'ai donné le code, j'aurai du y penser. Désolé pour l'erreur

Discussions similaires

  1. problème de connexion sur une instance 9i
    Par abadana dans le forum Administration
    Réponses: 1
    Dernier message: 19/12/2008, 18h26
  2. Problème d'initialisation d'une DependencyProperty dans un UserControl
    Par seiryujay dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 30/10/2008, 14h46
  3. Problème d'initialisation d'une propriété
    Par choas dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 21/10/2008, 15h53
  4. Réponses: 6
    Dernier message: 18/05/2007, 11h55
  5. Problème d'initialisation d'une matrice ?
    Par wilval dans le forum C
    Réponses: 5
    Dernier message: 04/02/2007, 16h13

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