Midoliy |> F# - オブジェクト式
オブジェクト式
Midoliy|F#プログラミング
オブジェクト式の概要
サンプルでみるオブジェクト式

オブジェクト式の概要


 オブジェクト式は、既存のクラス型やインターフェース型に基づいて 匿名のオブジェクト型を新しくその場で作成 し、そのインスタンスを作成する式です。これはつまり、即時的に基底クラスから派生クラスを作成するための式だと言っても過言ではありません。
// ------------------
// [ 構文 ]
// ------------------
// classの場合:
{ new typename [type-params]arguments with
    member-definitions
    [ additional-interface-definitions ] }

// class以外の場合:
{ new typename [generic-type-args] with
    member-definitions
    [ additional-interface-definitions ] }
 上記の構文では、【typename】はクラス型、またはインターフェース型を表しています。【type-params】には総称型のパラメータを指定することができますが、オプション項目なので指定しなくてもよいです。【arguments】には、typenameで指定した型のコンストラクタに対する引数を指定します。【member-definitions】には、typenameで指定した型のメソッドのオーバーライドや抽象メソッドの実装をすることが可能です。


サンプルでみるオブジェクト式

   次の例では、オブジェクト式の簡単な利用方法を紹介しています。


 オブジェクト式は、クラスなどの型を新規作成するのに必要な、余分なコードとオーバーヘッドを避けたい場合に利用します。オブジェクト式を使用することによって、プロぐラミで作成される型の数を最小限に抑えつつ、コードの行数を減らし、型の不必要な拡散を防ぐことが可能です。特定の状況に対応するためだけに多くの型を作成するのではなく、「既存の型をカスタマイズしたり、特定のケースに適したインターフェースの実装を提供するオブジェクト式を利用する」という選択肢を持てるようにしましょう。