Object Expression

Object Expressionとは、 既存のクラスを継承したオブジェクトを記述するための文法です。 雰囲気としては、無名関数に似ていて 直接、子クラスのオブジェクトを生成出来ます。 Object Expressionの文法は次のようになります
Object Expression
object expression := { new コンストラクタ呼び出し with メンバの定義 end インタフェースの実装 }
具体的には次のようになります
Object Expressionの例
let helloobj =
    { new System.Object() with
        member x.ToString() = "Hello";
      end};;
System.Console.WriteLine(helloobj.ToString());;
obj型(System.Objct)のオブジェクトは ToString()というメソッドを持っています。 この例では、ToString()を置き換えたオブジェクトを生成し ToString()を呼び出しています。 また、次の例のように、 元のクラスにはないインタフェースを実装することもできます。
インタフェースの実装
let disposable_obj =
   { new System.Object()
     interface System.IDisposable with 
         member x.Dispose() = printfn "Dispose";
     end};;
disposable_obj.Dispose();;
この例では一つだけですが 通常のクラスと同様に インタフェースは複数実装することができます。