在C#中,可以定义一个公共静态只读字段是这样的:如何定义公共静态只读字段?
namespace MyNamespace
{
public static class MyClass
{
public static readonly string MyValue = "Test";
}
}
在F#中的代码,我能想到的定义相匹配以上最好是:
namespace MyNamespace
module MyClass =
[<Literal>]
let MyValue = "Test"
但其实这转换为以下C#代码片段:
namespace MyNamespace
{
public static class MyClass
{
public const string MyValue = "Test";
}
}
如何在F#中定义公共静态只读字段? const
不适合我,因为我想要work with different assemblies。
为什么不只是写C#代码和使用编译的代码在你的F#a la http://stackoverflow.com/questions/3901805/how-to-use-c-sharp-object-from-f? –
为什么你特别需要一个只读字段?为什么你不能放弃'Literal'属性并且在那里有一个正常的允许值(编译成只有getter属性)? – scrwtp
这两个选项(使用C#,下降Literal属性)是完全可行的,我只是想知道如果我错过了一些东西,允许我直接在F#中执行此操作。 –