2011-07-12 67 views
12

我知道這是愚蠢的問題。我可以在c#中創建一個像下面這樣的空類。如何在F中創建空課#

class Customer{} 

但我該如何在F#中做到這一點?這是我的嘗試

type Customer() = 

    let _ =() 

什麼是正確的方法?

回答

18

嘗試

type Customer() = class end 

通常情況下,你可以離開classend令牌隱含的編譯器推斷的開頭和類的定義結束他們的存在,但如果類完全是空的,你需要指定它們。同樣,您可以使用struct endinterface end來生成結構和接口。

+0

我試試 類型Customer = class end,沒有「()」,適用於我。 –

+2

@Fred - 是的,這也可以,但是你的類在F#中沒有任何可訪問的構造函數。 – kvb

+0

你是對的,需要在那裏有「()」,需要看IL看看它是如何工作的:)。 –

7

另一種方式來寫一個空類(含參數的構造函數),我不知道如何產生的IL看起來比較,如果不同可言@ KVB的解決方案,僅僅是

type Customer() = do() 
7

然而,另一種方式:

type Customer = 
    new() = {}