オブジェクト式
F#には、いろいろと興味深い機能がありますが、オブジェクト式もそのひとつ。
open NUnit.FrameworkJavaの無名内部クラスとほとんど同じだと思います。これに相当する機能がC#になくて若干不便だなーと思っていましたが、F#にはあるんですね。type IGreeing =
abstract Greet : string -> string[<Test>]
let ``test Object Expression``() =
let greeting =
{ new IGreeing with
member this.Greet(name) = "Hello " + name
}
Assert.AreEqual("Hello hoge", greeting.Greet("hoge"))
IGreeingがインタフェース。オブジェクト式を使っているのは、{new ... }というところです。