2010-10-22 8 views
-1

Dans mon dernier post j'ai demandé des commentaires de mon code.Aujourd'hui, j'ai également mis en caisse un simple projet dummy.Si vous pensez que maintenant j'ai des connaissances de base des délégués et des événements, alors s'il vous plaît dites-moi une tâche difficile pour délégués et événements. Ci-dessous est mon code-délégués et événements

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DelegatesAndEvents.aspx.cs" Inherits="WebProjects.DelegatesAndEvents" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>Untitled Page</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Button ID="btn1" runat="server" onclick="btn1_Click" Text="ONE" /><br /> 
     <asp:Button ID="btn2" runat="server" onclick="btn2_Click" Text="TWO" /><br /> 
     <asp:Button ID="btn3" runat="server" onclick="btn3_Click" Text="THREE" /><br /> 

     <asp:Label ID="lblText" runat="server"></asp:Label> 
    </div> 
    </form> 
</body> 
</html> 


using System; 

namespace WebProjects 
{ 
    public partial class DelegatesAndEvents : System.Web.UI.Page 
    { 
     public delegate void MyDelegate(string val); 

     public event MyDelegate myEvent; 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      myEvent += SetLabelValue; 
     } 

     public void SetLabelValue(string val) 
     { 
      lblText.Text = val; 
     } 

     protected void btn1_Click(object sender, EventArgs e) 
     { 
      if(myEvent!=null) 
      { 
       string value = "button one is clicked."; 
       myEvent(value); 
      } 
     } 

     protected void btn2_Click(object sender, EventArgs e) 
     { 
      if (myEvent != null) 
      { 
       string value = "button two is clicked."; 
       myEvent(value); 
      } 
     } 

     protected void btn3_Click(object sender, EventArgs e) 
     { 
      if (myEvent != null) 
      { 
       string value = "button three is clicked."; 
       myEvent(value); 
      } 
     } 
    } 
} 

Merci d'avance.

+1

Une tâche difficile? Utilisez-les bien dans le vrai projet ;-) (et augmentez le vôtre acceptent le rapport) – zgorawski

Répondre

2

Mon premier conseil est de ne pas écrire ces programmes d'autoformation dans un projet asp.net, car vous devez d'abord comprendre le cycle de vie des pages asp.net. Une application console est plus facile à écrire et à tester.

Et dans votre question, le code semble être correct. Il vaudra mieux donner des noms significatifs aux variables, ce qui peut aussi vous aider à mieux comprendre les délégués et les événements.

Votre code peut être amélioré en intégrant 3 événements en un. En fait dans le code, myEvent est utilisé comme un délégué ordinaire, pas nécessaire d'être un event. This answer peut être utile pour mieux comprendre les différences entre délégué/événement.