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 :

Matrice dynamique d'objets


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 Matrice dynamique d'objets
    Bonjour,
    Après quelques essais infructueux, j'ai réussi à faire tourner un petit programme qui instancie un objet de la classe à la fois (chaque objet est unique), le but étant d'implémenter la technique sur un très grand tableau dynamique de données.
    Le programme implémente une classe de "nombres" et déclare une matrice dynamique d'objets de cette classe.
    Est ce que la méthode utilisée ci-dessous est la bonne ou y a t-il plus simple, plus élégant, plus performant ?
    Merci d'avance,
    Bruno

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    Public Class Form1
        Dim ArrayOfNumbers() As Numbers
        Dim n As Integer
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            TextBox1.Text = 1
            TextBox2.Text = 2
            TextBox3.Text = 3
            n = 0
        End Sub
     
      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            n += 1
            ReDim Preserve ArrayOfNumbers(n)
            ArrayOfNumbers(n) = New Numbers(n)
            ArrayOfNumbers(n).sItem1(n * CDbl(TextBox1.Text))
            ArrayOfNumbers(n).sItem2(n * CDbl(TextBox2.Text))
            ArrayOfNumbers(n).sItem3(n * CDbl(TextBox3.Text))
        End Sub
     
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            MessageBox.Show(ArrayOfNumbers(n).gItem1.ToString)
        End Sub
    End Class
     
    Class Numbers
        Private Id As Integer
        Private Item1 As Double
        Private Item2 As Double
        Private Item3 As Double
        Public Sub New(i As Integer)
            Id = i
            Item1 = 0
            Item2 = 0
            Item3 = 0
        End Sub
     
        Sub sItem1(d As Double)
            Item1 = d
        End Sub
        Sub sItem2(d As Double)
            Item2 = d
        End Sub
        Sub sItem3(d As Double)
            Item3 = d
        End Sub
     
        Function gItem1() As Double
            gItem1 = Item1
        End Function
    End Class

  2. #2
    Membre expérimenté Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    149
    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 : 149
    Par défaut
    Citation Envoyé par __bv__ Voir le message
    Bonjour,

    Est ce que la méthode utilisée ci-dessous est la bonne ou y a t-il plus simple, plus élégant, plus performant ?
    Merci d'avance,
    Bruno
    bonjour,

    Pourquoi ne pas utiliser une Collection ou une List plutôt qu'une matrice 1D ?

    et puis dans l'objet, au lieu de faire 3 sub, tu n'en fais qu'une et tu appelles la propriété à changer comme paramètre.

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    Citation Envoyé par Elthorn Voir le message
    bonjour,

    Pourquoi ne pas utiliser une Collection ou une List plutôt qu'une matrice 1D ?

    et puis dans l'objet, au lieu de faire 3 sub, tu n'en fais qu'une et tu appelles la propriété à changer comme paramètre.
    Je suis d'accord pour la Collection (List) en revanche, moins pour les 3 sub. __bv__ a implémenté un getter/setter pour les champs de sa classe. J'aurais plutôt tendance à lui conseiller d'utiliser des Property.

  4. #4
    Membre expérimenté Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    149
    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 : 149
    Par défaut
    Citation Envoyé par ebastien Voir le message
    Bonjour,

    Je suis d'accord pour la Collection (List) en revanche, moins pour les 3 sub. __bv__ a implémenté un getter/setter pour les champs de sa classe. J'aurais plutôt tendance à lui conseiller d'utiliser des Property.
    En effet, j'avais pas percuté que c'était des private et non des property...

  5. #5
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Au risque de sembler un peu idiot ...
    Pourquoi donc se donner tant de mal pour gérer un tableau dynamique de Double ?

    Pourquoi pas :

    Déclaration prélable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim MonTableauDynamique(0) As Double   ' L'indice 0 du tableau est exploitable
    Là il faut ajouter un élément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            MonTableauDynamique(MonTableauDynamique.Count - 1) = 1  ' Affectation au dernier indice disponible
            ReDim Preserve MonTableauDynamique(MonTableauDynamique.Count) ' Prépare un dernier indice pour la prochiane fois
    Et remarquez qu'un tel tableau dispose de méthodes et propriétés utiles à la plupart des traitements ...Nom : TabDyn.jpg
Affichages : 159
Taille : 13,6 Ko

    ...

  6. #6
    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 pour ces indications.
    Je vais regarder ça de plus près. Je ne connaissais pas "Property" ! :-)
    Ce petit bout de code est juste un essai.
    Le tableau utilisé est en fait constitué de pas mal de membres, la plupart sont numériques.

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/12/2005, 23h20
  2. Réponses: 5
    Dernier message: 13/11/2005, 20h10
  3. Création dynamique d'objets ?
    Par Arthur A. dans le forum C++
    Réponses: 6
    Dernier message: 16/06/2005, 00h55
  4. création dynamique d'objet, projet win32
    Par noinneh dans le forum MFC
    Réponses: 5
    Dernier message: 03/02/2005, 17h07
  5. [Reflexivite]création dynamique d'objet et Héritage
    Par norkius dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 26/10/2004, 12h37

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