我想知道c#中事件的確切用途是什麼。我仍然在學習c#的過程中,所以我可能會錯過一些東西,但是可以使用代表。
在這個例子中,我編寫了一個類,其方法的計數範圍是從0到2^64,每次達到一千個倍數時都會引發一個事件。下面是代碼:在c中使用事件關鍵字#
namespace EventDelegate
{
class Program
{
static void Main(string[] args)
{
EventRaiserClass _eventraiser = new EventRaiserClass();
_eventraiser.handler = SomeEventHandler;
_eventraiser.handler += AnotherEventHandler;
_eventraiser.Loop();
Console.Read();
}
static void SomeEventHandler(object sender, EventArgs args)
{
Console.WriteLine("Event raised");
}
static void AnotherEventHandler(object sendr, EventArgs args)
{
Console.WriteLine("Event raised (Another handler)");
}
}
public delegate void Handler(object sender, EventArgs args);
class EventRaiserClass
{
public Handler handler;
public void Loop()
{
for (long i = 0; i < Int64.MaxValue; i++)
{
if ((i % 1000) == 0)
{
EventArgs args = new EventArgs();
RaiseEvent(args);
System.Threading.Thread.Sleep(1000);
}
}
}
private void RaiseEvent(EventArgs args)
{
if (handler != null)
handler(this, args);
}
}
}
什麼會區別已經如果我宣佈了handler
委託變量是這樣public event Handler handler
的事件。
對不起,如果我有點模糊或缺少一些明顯的東西,但我只是想知道在使用event
而不是使用後面發生的其他事情是否會發生,而不僅僅是爲了便於閱讀。
可能重複(http://stackoverflow.com/questions/803242/understanding-events-and-event-handlers-in-c-sharp) –
查看http://csharpindepth.com/Articles/Chapter2/Events.aspx –
謝謝,我來看看。 –