【问题标题】:Initializing a C#-struct from F#?从 F# 初始化 C# 结构?
【发布时间】:2014-01-28 18:20:43
【问题描述】:

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

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#,我开始对赋值运算符&lt;- 过敏,那么有什么办法可以改善吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    请注意,您不需要在 F# 中使用 new,除非通常建议在 IDisposable 事物上使用它。还要注意指定适当类型的文字所需的后缀。

    【讨论】:

      猜你喜欢
      • 2017-01-06
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多