F#中的全局常量 - 如何

mfe*_*old 21 f# constants c#-to-f#

我需要通过几个相关项目设置要在AssemblyVersion属性中使用的版本号.

在C#中我使用以下内容

public class Constants {
    public const string Version = "1.2.3.4";
}
Run Code Online (Sandbox Code Playgroud)

然后它可以使用如下:

[assembly:AssemblyVersion(Constants.Version)]
Run Code Online (Sandbox Code Playgroud)

F#中的等价结构是什么.我试图提出一个可以作为属性参数接受的绑定的尝试都没有用.

Joh*_*bom 36

使用属性Literal:

[<Literal>] 
let version = "1.2.3.4"

[<assembly:AssemblyVersion(version)>]
Run Code Online (Sandbox Code Playgroud)


小智 8

自从我自己走进这个陷阱后,我以为我会跟随任何人分享.'Literal'要求信件以大写字母开头.当您尝试在模式匹配构造中使用文字时,这会打击您.

参考: Literal属性不起作用

  • 作为对已接受答案的评论,这个答案会更好. (3认同)
  • 仅当您想在模式匹配上下文中使用文字时,这才是正确的。 (2认同)