F#入門-第四章 面向對象-第八節 對象表達式

    對象表達式是指繼承類而且直接創建對象的表達式。從表面上來看,很象匿名函數,但是該表達式直接創建子類的對象。


    對象表達式的書寫方法如下所示。

 對象表達式
    對象表達式 :=
    {
        new 構造器的調用
        with 成員的定義 end
        接口的實現
    }


    具體如下例所示

對象表達式的例子
let helloobj =
    { new System.Object() with
        member x.ToString() = "Hello";
    end};;
System.Console.WriteLine(helloobj.ToString());;


    obj類型(System.Object)的對象都具有ToString()方法.這個例子中,創建了改寫了ToString()方法的對象並調用ToString()方法。

    另外,如下例所示,可以不繼承類,而是實現接口。

接口的實現
let disposable_obj =
   { new System.Object()
    interface System.IDisposable with
        member x.Dispose() = printfn "Dispose";
    end};;
disposable_obj.Dispose();;


    這只是一個例子,可以與普通類同樣,實現多個接口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章