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 :

Instanciation dynamique: comment fait-on?


Sujet :

VB.NET

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut Instanciation dynamique: comment fait-on?
    Bonjour, je débute en .net mais je connais le C++,

    J'aimerais savoir comment fait-on pour instancier dynamiquement une classe?

    Merci par avance.

  2. #2
    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
    il y a diférents chemin, à partir du type ou du nom du type, dont :
    System.Activator.CreateInstance
    letype.getconstructors(...).invoke
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    pourrais tu me donner un exemple avec la classe A

  4. #4
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Si tu sais, à l'écriture du code, que tu veux instancier une classe A : "A x = new A();"
    Si, à l'exécution tu veux instancier une classe quelconque dont le type est stocké dans une variable, soit "Activator.CreateInstance(type)", soit tu obtiens les infos du constructeur et tu utilises "constructor.Invoke()".

  5. #5
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    "A x = new A();"
    C'est plutot du C#, ça.

    En VB, ça donnerais Dim x As A = new A() ou Dim x As new A()

    On peut aussi avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim x As A
    ....
    ....
    x = new A()
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    c'est quoi alors la différence entre un objet dynamique et un objet statique

  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
    faudrait expliquer ce que tu cherches
    parce que dynamique ca veut tout et rien dire à la fois
    et statique aussi on peut sortir plusieurs concepts derrière (variable statique, static/shared du c#, statique/qui bouge pas etc///)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    dynamique c'est comme un tableau d'objets et statique un seul objet et il y a des notions de gain de mémoire, c'est pas ça?!

  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
    ouh là

    un tableau d'objet on peut modifier la taille oui, par ailleurs les collections sont plus à conseiller que les tableaux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' variable simple :
    dim i as integer
    ' tableau d'entier :
    dim ti() as integer
    dim ti(9) as integer ' 0 à 9
    ' collection:
    dim ci as new list(of integer)
    ci.add(5)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    ouh là

    un tableau d'objet on peut modifier la taille oui, par ailleurs les collections sont plus à conseiller que les tableaux
    Attention à ne pas l'induire en erreur : on ne peut pas modifier la taille d'un tableau existant. Je présume que tu voulais dire qu'on définit à sa création la taille d'un tableau.

  11. #11
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Avant de continuer à répondre dans le vent à la question de départ, toutounesan prends quelques minutes pour mettre en ordre ce que tu veux demander exactement et repostes ensuite clairement ta demande. Pour le moment ça part dans tous les sens, sans savoir à quoi on doit répondre clairement, et c'est un peu l'anarchie.

    Merci
    Pas de questions techniques par MP

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    et oui c'est la galère dans ma tête de traumatisée crânien, mdr!

  13. #13
    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 DonQuiche Voir le message
    Attention à ne pas l'induire en erreur : on ne peut pas modifier la taille d'un tableau existant. Je présume que tu voulais dire qu'on définit à sa création la taille d'un tableau.
    à ce compte là on ne peut pas modifier un string non plus !
    un tableau peut etre redimensionné, par copie, comme le string (redim preserve)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Mais cela produit un nouvel objet, ça ne modifie pas l'original. Ça fait une grosse différence : les références à l'objet original ne sont pas modifiées. Donc, non, un tableau et une string ne peuvent pas être redimensionnés, ce n'est pas qu'une question de formulation, surtout pour quelqu'un qui apprend le langage et qui semble déjà bien égaré.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    re, le mieux c'est pas d'utiliser une collection!
    C'est assez puissant. Je viens de me faire un petit projet.

    Mais comment fait-on pour faire une collection d'objets d'une classe que d'on souhaite? Il suffit d'ajouter cet objet à la un objet collection
    par exemple MyCollection.Add(fils) //toto est un objet qui instancie la classe papa

  16. #16
    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
    rien compris

    il existe pleind de collections dans .net, selon ce qu'on veut faire avec
    list, dictionary, queue, sortedlist, stack, linkedlist etc...

    pour une collection simple c'est list(of [le type que tu veux y compris une classe])
    le list indexe les éléments entre 0 et (count -1)
    pour les autres l'aide explique ce qu'elles font (genre queue et stack pour fifo/lifo)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  17. #17
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Pourquoi ne pas faire du C# plutot que du VB.Net, venant de C++ ca serait plus simple pour toi!

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    car mon projet doit être fait en VB .net, c'est dans le cahier des charges

Discussions similaires

  1. Comment faites-vous pour récupérer la valeur d'une liste dynamique ?
    Par Cvbdev dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 03/06/2010, 09h01
  2. Instanciation dynamique d'ActiveX
    Par cathar_rhythm dans le forum MFC
    Réponses: 12
    Dernier message: 28/06/2005, 08h11
  3. [IE]Comment fait-on un plug-in ?
    Par le Daoud dans le forum Windows
    Réponses: 2
    Dernier message: 13/04/2005, 18h54
  4. Réponses: 6
    Dernier message: 08/04/2005, 03h00
  5. [light] Comment fait-on une lumiere constante ?
    Par :GREG: dans le forum OpenGL
    Réponses: 2
    Dernier message: 14/03/2004, 17h54

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