将内部区分并集的实例从F#初始化为C#

将内部区分并集的实例从F#初始化为C#,c#,f#,c#-to-f#,C#,F#,C# To F#,我有一个通过dll从F#导出的有区别的联合类型,用于C#: 在C#中,我可以初始化类似于Argument.NewBoolValue(true),但其他两种类型IntValue和FloatValue不是通过F#编译器生成的类型,因此标记为internal,是否有方法在C#中初始化它们?如果区分的并集实例没有任何有效负载,没有生成NewXXX方法。因为这种联合案例的所有实例都是相同的,并且不需要创建函数。因此,请改用staic属性 Argument.IntValue Argument.FloatVa

我有一个通过dll从F#导出的有区别的联合类型,用于C#:


在C#中,我可以初始化类似于
Argument.NewBoolValue(true)
,但其他两种类型
IntValue
FloatValue
不是通过F#编译器生成的类型,因此标记为internal,是否有方法在C#中初始化它们?

如果区分的并集实例没有任何有效负载,没有生成
NewXXX
方法。因为这种联合案例的所有实例都是相同的,并且不需要创建函数。因此,请改用staic属性

Argument.IntValue
Argument.FloatValue
在内部,这些属性只返回相应用例的单例实例:

internal static readonly Argument _unique_IntValue = new _IntValue();

public static Argument IntValue => _unique_IntValue;

可以观察到更有趣的细节。

应该有
参数.IntValue
参数.FloatValue
静态属性
internal static readonly Argument _unique_IntValue = new _IntValue();

public static Argument IntValue => _unique_IntValue;