2014-01-09 138 views
1

我有我想從F#消耗一個簡單的C#結構:從F#初始化C#-struct?

public struct Stat : IEquatable<Stat> 
{ 
    public ulong st_dev; 
    public long st_blocks; 
} 

我發現這樣做的方式感覺太C#十歲上下可變的對我說:

stbuf <- new Stat() 
stbuf.st_blocks <- 0 
stbuf.st_dev <- 1 

不更何況,在C#中,我可以用好的new Stat { st_blocks = 0, st_dev = 1 }語法糖...

現在我越來越轉換爲F#,我開始去的賦值操作符<-過敏,所以是有什麼辦法可以改善這個?

回答

5

有語法在構造函數中設置屬性或可變域:

stbuf <- Stat(st_blocks = 0L, st_dev = 1UL) 

注意,你並不需要在F#的new除了它通常建議在IDisposable事情。還要注意指定適當類型的文字所需的後綴。