C#でアーリー/レイトバインディングが発生したときに頭を悩ませようとしています。
非仮想メソッドは常に早期にバインドされます。仮想メソッドは常にレイトバウンドです。コンパイラーは、実行時にバインドする実際のメソッドを解決するために追加のコードを挿入し、型の安全性をチェックします。したがって、サブタイプのポリモーフィズムは遅延バインディングを使用します。
リフレクションを使用してメソッドを呼び出すことは、遅延バインディングの例です。コンパイラではなく、これを実現するコードを記述します。(たとえば、COMコンポーネントの呼び出し。)
VB.NETは、Option Strictがオフの場合、暗黙的な遅延バインディングをサポートします。オブジェクトは、Object型であると宣言された変数に割り当てられると、レイトバウンドされます。VBコンパイラは、実行時に適切なメソッドにバインドし、無効な呼び出しをキャッチするコードを挿入します。C#はこの機能をサポートしていません。
私は正しい方向に向かっていますか?
デリゲートを呼び出し、インターフェイス参照を介してメソッドを呼び出すのはどうですか?それは初期バインディングですか、それとも遅延バインディングですか?