f# - 对象中的公共(public)可变字段

标签 f# c#-to-f#

是否可以在 F# 中创建一个简单的公共(public)可变字段?我正在创建一个库,我将从 C# 程序访问该库,并且我需要能够从 C# 设置字段。

//C# Equivalent 
public class MyObj
{
    public int myVariable;
}

//F#
type MyObj = 
    //my variable here

    member SomeMethod() = 
        myVariable <- 10

//C# Usage
MyObj obj = new MyObj();
obj.myVariable = 5;
obj.SomeMethod()

最佳答案

type MyObj() = 
    [<DefaultValue>]
    val mutable myVariable : int
    member this.SomeMethod() = 
        this.myVariable <- 10

你可以离开[<DefaultValue>]如果没有主构造函数,但这可以处理更常见的情况。

关于f# - 对象中的公共(public)可变字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24670719/

相关文章:

f# - C# 到 F# 转换公共(public)部分类设备 : MarshalByRefObject

visual-studio - '无法加载文件或程序集'FSharp.Core,版本= 4.6.2.0

f# - 在 F# 中编写这些方法的功能方法

types - 跨类型共享功能

f# - 从 F# 函数构建 Linq 表达式,以传递给 C#

f# - 无法从 F# 中查看 Excel Interop 中的某些属性

f# - F# 中的复杂延续

generics - (FS0193、FS1113)具有静态解析类型参数的 F# 向量类

syntax - 如何在 F# 中创建类实例并填充属性?

F#:有些、无或异常(exception)?