none
VB 2010 – Comment créer plusieurs instances d’une classe RRS feed

  • Question

  • Bonjour à tous,

    J’ai un objet simple que je voudrais dupliquer un certain nombre de fois mais je ne connais pas ce nombre à l’avance et ce faisant, je ne peux pas utiliser de déclaration de type :

    Dim Obj As New MaClass

    J’ai pensé à instancier la classe au sein d’une boucle For et cela donne :

            Dim Inst(20) As Object                    ‘ Nombre de fois que la classe doit être instanciée

            For N As Integer = 1 To Inst.Count

                Dim Obj & N As New MaClass      ‘ Instruction non valide pour déclarer chaque instance

            Next

    Pas de chance, cela ne fonctionne pas et je ne voie pas comment régler ce problème.

    Si quelqu’un connait une solution ou bien a de la lecture à ce sujet, je l’en remercie.

    Cordialement

    SL

    samedi 20 décembre 2014 17:41

Réponses

  • Bonjour

    Il me semble que le plus simple serait de déclarer un tableau de cet objet sans donner la dimension et un redim quand on la connaît.
    Qqch comme :
    Dim TabObj() as ...
    puis Redim TabObj(Inst.Count)

    Ça facilite aussi l'utilisation

    • Marqué comme réponse Santa Lina lundi 22 décembre 2014 11:15
    samedi 20 décembre 2014 18:01
  • Dim col as New List(Of MaClass)
    
    For i as Integer = 0 To Nombre
        col.Add(New MaClass())
    Next


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    Merci de "Proposer comme réponse" si cette réponse vous convient.
    samedi 20 décembre 2014 20:16

Toutes les réponses

  • Bonjour

    Il me semble que le plus simple serait de déclarer un tableau de cet objet sans donner la dimension et un redim quand on la connaît.
    Qqch comme :
    Dim TabObj() as ...
    puis Redim TabObj(Inst.Count)

    Ça facilite aussi l'utilisation

    • Marqué comme réponse Santa Lina lundi 22 décembre 2014 11:15
    samedi 20 décembre 2014 18:01
  • Dim col as New List(Of MaClass)
    
    For i as Integer = 0 To Nombre
        col.Add(New MaClass())
    Next


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    Merci de "Proposer comme réponse" si cette réponse vous convient.
    samedi 20 décembre 2014 20:16
  • Bonjour Geo,

    Merci pour votre réponse.

    Bonne fête de fin d’année

    Cordialement

    SL

    lundi 22 décembre 2014 11:12
  • Bonjour Richard,

    Merci pour votre réponse.

    Merci aussi de m’avoir rafraichi la mémoire. Finalement j’ai opté pour une méthode proche.

           Dim Rects As New Dictionary(Of Rectangles, Integer)

            For i As Integer = 0 To N

                Rects.Add(New Rectangles, i)

            Next

    Bonne fête de fin d’année

    Cordialement

    SL

    lundi 22 décembre 2014 11:15