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

C# Discussion :

Passer une methode en argument


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Par défaut Passer une methode en argument
    Salut
    Je veux réaliser une application dans laquelle je veux passer une méthode comme argument du constructeur d'une classe. cette méthode possède à son tour un argument et elle ne retourne rien.
    Je me demande comment dois je procéder.
    Merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Utilise un delegate, ça sert à ça
    C'est (grosso modo) l'équivalent des pointeurs de fonctions en C++

    En gros, tu définis un delegate qui décrit la signature de la méthode que tu veux passer en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    delegate void MyMethodDelegate(object arg);
    Tu déclares de la façon suivante le constructeur qui doit prendre cette méthode en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public MyClass(MyMethodDelegate method)
    {
       ...
    }

    Tu déclares une méthode qui correspond à ce delegate:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void MyMethod(object arg)
    {
    ...
    }
    Et tu passes cette fonction en paramètre du constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyClass x = new MyClass(new MyMethodDelegate(MyMethod));
    ou plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyClass x = new MyClass(MyMethod);
    (conversion implicite en MyMethodDelegate)

Discussions similaires

  1. passage d'une methode avec argument
    Par skanderb dans le forum JSF
    Réponses: 27
    Dernier message: 27/04/2007, 17h36
  2. [VB6]Comment puis-je passer une ComboBox en argument?
    Par Xan dans le forum VB 6 et antérieur
    Réponses: 20
    Dernier message: 26/02/2007, 15h03
  3. passer une fonction en argument, c'est possible ?
    Par kamouminator dans le forum C
    Réponses: 4
    Dernier message: 10/11/2006, 21h13
  4. Comment passer une fonction en argument
    Par Pades75 dans le forum Langage
    Réponses: 4
    Dernier message: 16/02/2006, 10h34
  5. Passer une fonction comme argument à une fonction
    Par Cocotier974 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/06/2004, 13h41

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