我想要从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#,我开始对赋值运算符<-
过敏,那么有什么方法可以改善它吗?
答案 0 :(得分:5)
在构造函数中设置属性或可变字段的语法:
stbuf <- Stat(st_blocks = 0L, st_dev = 1UL)
请注意,您不需要F#中的new
,但通常建议IDisposable
内容使用{{1}}。另请注意指定适当类型的文字所需的后缀。