Hej, Något såhär, snabbt och fel: Oscars exempel fast lite mer efter standard..events in C#
Jag har precis börjat gå över från VB.NET till C#.
Jag undrar bara varför är så krånglig är eventhantering på C#. följande är på VB.NET och mycket enkelt.
-- min UserControl--
Public Class Calculation
Inherits System.Web.UI.UserControl
Public Event Calculate()
Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click
RaiseEvent Calculate()
End Sub
End Class
'--- min aspx.vb ------
Public Class MyPage
Inherits System.Web.UI.Page
Protected WithEvents Calculation1 As Calculation
Private Sub Calculation1_Calculate() Handles Calculation1.Calculate
End Sub
End Class
det var allt, men i C# skapar bara huvudvärk,
ni som kan mycket C# har ni möjlighet att översätta koden till C# (enklaste sättet)
tack.Sv: events in C#
public class c1
{
public event EventHandler e1;
public void kaka()
{
this.e1(this, EventArgs.Empty);
}
}
public class c2
{
public c2()
{
this.c1.e1 += new EventHandler(this.kaka);
}
protected c1 c;
private void kaka(object sender, EventArgs e)
{
}
}
Sv:events in C#
public class c1
{
public event EventHandler MyEvent;
protected virtual void OnMyEvent(EventArgs e)
{
if (MyEvent != null)
MyEvent(this,e);
}
public void kaka()
{
OnMyEvent(eventargs.empty);
}
}
OnXXX metoden fixar så inget smäller om inga eventhandlers är kopplade på ditt event.
och du kan dessutom overrida onxxx metoden i subklasser om du vill ha lite speciallogik för hur eventet raisas.
(alla ms klasser följer den standarden)
Kanske lite mer kod än i vb , men mycket mer kontroll över hur allt sker