在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#中執行此操作。 –