从F#初始化C#-struct?

时间:2014-01-09 23:08:14

标签: c# struct f# c#-to-f#

我想要从F#中使用一个简单的C#结构:

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

我发现这样做的方式感觉太C#ish并且对我来说是可变的:

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

更不用说在C#中我可以使用漂亮的new Stat { st_blocks = 0, st_dev = 1 }语法糖......

既然我已经转换为F#,我开始对赋值运算符<-过敏,那么有什么方法可以改善它吗?

1 个答案:

答案 0 :(得分:5)

在构造函数中设置属性或可变字段的语法:

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

请注意,您不需要F#中的new,但通常建议IDisposable内容使用{{1}}。另请注意指定适当类型的文字所需的后缀。