デリゲートは,オブジェクト指向プログラミングにおいて,オブジェクトの振る舞いを別のオブジェクトに肩代わりしてもらうことです。「委譲」「委任」と呼ぶこともあります。 デリゲートを使えば,そのオブジェクト自身に処理を実装しなくて済みます。そのため,プログラム実行時まで振る舞いを決定できない場合や,クラスの肥大化を防ぎたい場合によく使われます。 デリゲートはクラスの中で委譲先のオブジェクトを生成してメソッドを呼び出す単純な手法で実現できますが,一般にはJavaのインタフェースやC++の純粋抽象クラスなど,委譲先のクラスでメソッドの実装を強制する仕組みを併用します。 また,.NET Frameworkには基本型(プリミティブ型)として,任意のメソッドを指し示すdelegate型が組み込まれています。.NET Frameworkでは,このdelegate型のクラス・メンバーを「デリゲート」と呼びます