2011-08-17 6 views
0

誰でもこのコードを以下にどのように実行しているのか説明できますか?C#イベントハンドラの説明をお願いします

RoleEnvironment.Chaning += RoleEnvironmentChaning; 

private void RoleEnvironmentChanaing(object sender, RoleEnvironmentchaningnEventArgs e) 
{ 
    ...... 
} 

基本的に、C#.netでのイベント処理の仕組みを私に伝えていただければ幸いです。おかげさまで

+1

C#イベントに関するチュートリアルを読んでから、何か不明な点があれば、より正確な質問をしますか? –

+0

ありがとう@Henk Holterman –

答えて

2

ちょっとC#を忘れて、次のようなシナリオを考えてみましょう。 ユーザーがクリックしたいボタンが画面に表示され、ユーザーがボタンをクリックするタイミングがわからず、ユーザーがボタンをクリックしても常にチェックしないようにします。あなたがしたいことは、ユーザーが最終的にボタンをクリックしたときに、少しのカスタムコードを実行することです。

イベントやデリゲートへようこそ。

ボタンを見てみましょう。 Buttonには、カスタムコードをフックできるClickイベントがあります。 すなわち

//This happens in the designer 
Button button = new Button(); 
button.Click += new EventHandler(YourMethod); 

ボタンがクリックされた後、あなたの方法は、現在呼び出されます。

ボタンのクリックはどうなりますか?誰かがイベントに登録されているかどうかを確認します

if(Click != null) 
{ 
    Click(this, someEventArguments); 
} 
2

基本的にそれは言っている:RoleEnviromentは "変更" イベントをトリガすることを決めたときに、そのメソッドを呼び出します。 (私はChaningやChanaingではなく、あなたのコードに従って変更する必要があると仮定します)。

つまり、C#のイベントはpublisher/subscriberまたはobserverパターンの実装です。

詳細については、article on events and delegatesを参照してください。

関連する問題