C#でのイベントの正確な使用法は何だろうと思っていました。私はまだ c# を学習中なので、何かが足りないかもしれませんが、デリゲートだけを使用することは可能ですか。
この例では、0 から 2^64 までカウントし、1000 の倍数に達するたびにイベントを発生させるメソッドを持つクラスを作成しました。コードは次のとおりです。
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