F # derleyicisiyle birkaç denemeler yaptım ve burada bazı gözlemlerim var. IL literal oluşturmak istiyorsanız, bir modül içinde Literal
olarak işaretlenmiş değeri yerleştirmeniz gerekir. Böyle Örneğin: Bir yan not olarak
module Constants =
[<Literal>]
let Num = 1
, (I F # şartname yoluyla hızlı bir arama yaptım ve bir desen olarak kullanabilirsiniz, çünkü sabitler, desen eşleşmesi için çok yararlı olabilir gibi görünüyor onlar) büyük harfle başlar sürece:
open Constants
match 1 with
| Num -> "1"
| _ -> "other"
Şimdi Literal
bir tip bildirimi içine yerleştirdiğinizde beklendiği gibi davranmaz neden sorudur. Ben neden bir F # tipi beyanı içine let
beyan kamu olamaz ve tek sınıf/tip içinde görünür olur olduğunu düşünüyorum. Bunları kullandığınızda hem C# hem de F # satır içi değişmez değerlerine inanıyorum ve bu da tür bildirimleri içinde yapılır. değişmezi kamu olamaz Ancak bu yana daha hiç kimse erişebilir, çünkü literal
IL alanın oluşturulması için hiçbir neden yoktur.
Bu soruyu - http://stackoverflow.com/questions/1834923/f-public-literal - sordum ve Chris Smith bunun mümkün olmadığını belirtti. – Daniel