我有一個F#類派生自一個.net類與多個構造函數。爲了公開它們,我實現了一個沒有主構造函數的類型。現在我想添加一個靜態字段。我如何初始化靜態字段?試想一下:在F#中,如何初始化沒有主構造函數的類型中的靜態字段?
type MyType =
inherit DotNetType
[<DefaultValue>] static val mutable private myStatic : int
new() = { inherit DotNetType() }
new (someArg:string) = { inherit DotNetType(someArg) }
現在,我怎麼初始化運行恰好一次,如果該類型使用,而不是在所有如果類型是從未使用過的方式「myStatic」場?基本上,我需要一個C#靜態構造函數塊的等價物。
將是解決你的問題:https://msdn.microsoft.com /en-us/library/dd483473.aspx? – MarcinJuraszek
不,這不會因爲我的類型沒有主構造函數。一個「static do」會給我這個錯誤: 「靜態值定義只能用於帶有主構造函數的類型,考慮向類型定義中添加參數,例如'type X(args)= ...'。 感謝您的答覆,但。 –