Глобальные константы в F# – как это сделать
Вопрос
Мне нужно установить номер версии, который будет использоваться в атрибуте AssemblyVersion несколькими связанными проектами.
В С# я использую следующее
public class Constants {
public const string Version = "1.2.3.4";
}
то его можно использовать следующим образом:
[assembly:AssemblyVersion(Constants.Version)]
Какая будет эквивалентная конструкция в F#.Все мои попытки придумать привязку, которую можно было бы принять в качестве аргумента атрибута, не увенчались успехом.
Решение
Используйте атрибут Literal
:
[<Literal>]
let version = "1.2.3.4"
[<assembly:AssemblyVersion(version)>]
Другие советы
Поскольку я сам попал в эту ловушку, я решил поделиться ею со всеми, кто последует за ней.«Литерал» требует, чтобы буква начиналась с заглавной буквы.Это поразит вас, когда вы попытаетесь использовать литерал в конструкции сопоставления с образцом.
Не связан с StackOverflow