これはより理論的な質問であり、実用的なものであり、実際にはパフォーマンスの問題はありません。
私はイベントがどのように機能するかを理解しようとしています (そして、関数を呼び出す代わりにイベントを使用するとパフォーマンスが低下するかどうかを推測します)。
イベントは、イベントにサインアップした関数へのポインターのリストを保持する単なるクラスですか、それともその背後には他にもありますか?
イベントが発生すると、マルチキャスト デリゲート (基本的に、.SomeEvent += MySomeEventHandler
その型のインスタンスで実行されるたびに新しいイベント ハンドラーがアタッチされます。実際には、 every+=
で割り当てられた新しいデリゲート リストを取得しますが、ここではスキップします) がそれぞれを実行します。付属のハンドラー。そのため、複数のイベント ハンドラーがアタッチされている場合は常に、複数のメソッド呼び出しが行われます。非常に低レベルの詳細については、イベントが発生した状況で発行された IL を見て、イベントを通常のコールバックに変更したときの様子と比較してください。