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] fonctions génériques pour le new


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Par défaut [VB.Net] fonctions génériques pour le new
    Bonjour, j'aimerais faire quelque chose comme cela :

    Public Sub CreerEntite(Of classe)()
    Dim w_obj As classe
    w_obj = new classe()
    End Sub

    Dans l'idée je voudrais créer une fonction générique, on lui passe le nom d'une classe et il crée un objet de cette classe. A terme, il fera ce new que sous certaines conditions, c pourquoi le simple appel à New n'est pas efficace.

    Y a t'il une solution?

  2. #2
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    disons qu'il y a une solution alternative à ce que tu cherches....

    ceci dit je ne sais pas si ce que tu veux faire est possible.... à voir.


    Ce que tu peux faire c'est créer une instance d'une classe dont tu ne connais pas le type à l'avance...

    Après je ne sais pas ce que tu veux faire.. avec.

  3. #3
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Salut ohcysp,

    Tu cherche une solution à un probleme qui repose sur un melange de genericité et de reflexion.

    Voila ce que je te propose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     Public Function CreerEntite(Of Classe)() As Classe
            Dim o As Object = Activator.CreateInstance(GetType(Classe))
            Dim MyClasse As Classe = CType(o, Classe)
            Return MyClasse
    End Function
    Dans ton code main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim Instance As MaClass = CreerEntite(Of MaClass)()
    Voila A+

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Par défaut
    merci mehdi,
    ta réponse me convient tout à fait. Je ne connaissais pas Activator.
    Du coup, je peux résoudre mon problème de manière efficace.
    Merci beaucoup

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 17/09/2013, 11h59
  2. Fonction générique pour conversion bdd/c#
    Par jbrasselet dans le forum C#
    Réponses: 5
    Dernier message: 28/09/2011, 13h32
  3. Fonction générique pour valider les champs d'un formulaire quelconque
    Par dark_vidor dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/01/2009, 01h34
  4. [AJAX] [vos avis] fonction "générique" pour les requetes
    Par gorgonite dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/07/2007, 19h40
  5. fonction générique pour get set et change
    Par tretsois dans le forum C++
    Réponses: 9
    Dernier message: 18/02/2007, 18h28

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