Глобальные константы в F# – как это сделать

StackOverflow https://stackoverflow.com/questions/2326398

  •  22-09-2019
  •  | 
  •  

Вопрос

Мне нужно установить номер версии, который будет использоваться в атрибуте 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)>]

Другие советы

Поскольку я сам попал в эту ловушку, я решил поделиться ею со всеми, кто последует за ней.«Литерал» требует, чтобы буква начиналась с заглавной буквы.Это поразит вас, когда вы попытаетесь использовать литерал в конструкции сопоставления с образцом.

Ссылка:Литеральный атрибут не работает

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top