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 :

Delegate générique pour fainéant


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de TSalm
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 361
    Par défaut Delegate générique pour fainéant
    Bonjour,

    Je vais avoir besoin d'utiliser enormement de delegate afin de rediriger les appels de méthodes dans un Thread unique.

    Existe t-il une possibilité d'utiliser des delegate sans signatures afin de ne pas déclarer les 30000 delegates sur mes 30000 methodes ?

    D'avance merci pour votre aide,
    TSalm

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    si je comprend bien tu veux créer un délégate toalement générique et que
    et que le compilateur se démerde...

    ya quand meme un probleme... il va a l'encontre de C#

    tu as une solution avec un generique de ce type

    delegate object GenericDelegate(params object[] list);

    cependant toutes les fonctions qui devrons collé a ce delegate devrons correspondre àce profil... il n'ya pas moyen de définir un profil de delegate qui catch absolument tout prototype de fonction et que le compilateur se démerde pour savoir si la fonction que tu met dedans attend un entier t'assurer que qaund tu invoque la méthoe générique tu ai bien mis un entier.
    Deux raisons : sources de bugs, et ceci obligerais à faire la vérification et la liaison à l'exécution.

  3. #3
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    J'ai pas testé, mais faire un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public delegate S GenericDelegate<S>();
    public delegate S GenericDelegate<S>();
    public delegate S GenericDelegate<S,T1>(T1 t1);
    public delegate S GenericDelegate<S,T1,T2>(T1 t1, T2 t2);
    public delegate S GenericDelegate<S,T1,T2,T3>(T1 t1, T2 t2, T3 t3);
    public delegate S GenericDelegate<S,T1,T2,T3,T4>(T1 t1, T2 t2, T3 t3, T4 t4);
    ...
    ne suffit pas ?

  4. #4
    Membre éclairé Avatar de TSalm
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 361
    Par défaut
    Je vais tester tout ça
    Merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/10/2006, 17h15
  2. [VB.Net] fonctions génériques pour le new
    Par ohcysp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/09/2006, 11h47
  3. Utilitaire générique pour formater une clé USB
    Par Giovanny Temgoua dans le forum Périphériques
    Réponses: 22
    Dernier message: 03/05/2006, 09h21
  4. y a-t-il un support de types génériques pour python ?
    Par silverhawk.os dans le forum Général Python
    Réponses: 15
    Dernier message: 24/03/2006, 18h23
  5. Algorithmes génériques pour affichage de primitives 2D.
    Par Selenite dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 02/01/2005, 20h20

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