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

ASP.NET Discussion :

EventHandler, delegue different ?


Sujet :

ASP.NET

  1. #1
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut EventHandler, delegue different ?
    Bonjour,

    quelle est la difference entre ces 2 facon de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ublic class OnLoGonEventArgs : EventArgs
    {
     
    	public string _title;
     
    	public OnLoGonEventArgs(string title)
    	{
    		_title = title;
    	}
    }

    EventHandler :

    Dans un webusercontrol
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public EventHandler<OnLoGonEventArgs> OnLogon;
     
    protected void Button1_Click(object sender, EventArgs e)
    {
         if (OnLogon != null)
            OnLogon(sender, new OnLoGonEventArgs(TextBox1.Text));
    }
    Page aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     protected void Page_Load(object sender, EventArgs e)
    {
      Uc1_1.OnLogon += OnLoGon;
    }
     
    private void OnLoGon(object sender, OnLoGonEventArgs e)
    {
       if (e._title != "")
       {
          Label1.Text = e._title;	
       }	
    }

    Delegue:

    Dans un webusercontrol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public delegate void getInfo(object sender, OnLoGonEventArgs e);
    public event getInfo getInfoEvent;
     
    protected void Button1_Click(object sender, EventArgs e)
    {
        OnLoGonEventArgs args = new OnLoGonEventArgs(TextBox1.Text);
        getInfoEvent(this, args);
    }
    Page aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    protected void Page_Load(object sender, EventArgs e)
    {
       Uc2_1.getInfoEvent += new uc2.getInfo(Uc2_1_getInfoEvent);
    }
     
    void Uc2_1_getInfoEvent(object sender, OnLoGonEventArgs e)
    {
       Label1.Text = e._title;
    }

    Quelle est la difference ? cela donne le meme resultat.

    Merci

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Premier cas, tu utilises directement un délégué pour l'appel de la méthode. Deuxième cas, tu passes par un événement pour atteindre le délégué.
    En fait, un event est une encapsulation pour un délégué multicast, si je me souviens bien.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    EventHandler<TEventArgs> est un delegué générique apparu avec le Framework 2.0.
    Cela permet d'éviter de définir son propre délégué.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  4. #4
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Y a t il une facon de faire plus elegante ou plus pratique ou plus performante ?

Discussions similaires

  1. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  2. Difference entre EventHandler et event
    Par topolino dans le forum Silverlight
    Réponses: 4
    Dernier message: 06/03/2009, 22h54
  3. Difference entre fenetre et boite de dialog
    Par billyboy dans le forum Windows
    Réponses: 2
    Dernier message: 02/06/2003, 15h43
  4. [] Difference entre MSHFlexGrid et MSFlexGrid
    Par olivierx dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/04/2003, 08h48
  5. Difference entre types d'Adresse IP
    Par freud dans le forum Développement
    Réponses: 3
    Dernier message: 02/03/2003, 02h06

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