2010-02-24 5 views
21

J'ai besoin de définir un numéro de version à utiliser dans l'attribut AssemblyVersion par plusieurs projets connexes.Constantes globales dans F # - comment

En C# J'utilise le

public class Constants { 
    public const string Version = "1.2.3.4"; 
} 

suivant, alors il peut être utilisé comme suit:

[assembly:AssemblyVersion(Constants.Version)] 

Quelle serait la construction équivalent en F #. Toutes mes tentatives pour trouver une liaison qui peut être acceptée comme argument d'attribut n'ont pas fonctionné.

Répondre

34

Utilisez l'attribut Literal:

[<Literal>] 
let version = "1.2.3.4" 

[<assembly:AssemblyVersion(version)>] 
8

Depuis je suis entré dans ce piège moi-même je pensais que je partage pour tous ceux qui suivent. Un 'Littéral' exige que la lettre commence par une lettre majuscule. Cela vous atteindra lorsque vous essaierez d'utiliser le littéral dans une construction de correspondance de modèle.

Référence: Literal attribute not working

+0

Cela est vrai que si vous voulez utiliser le littéral dans un modèle contexte correspondant. – kvb

+0

La correspondance de modèle est assez centrale pour F #, cependant. Ne pas travailler dans la recherche de motifs le rend beaucoup moins utile. –

+3

Cette réponse pourrait être interprétée comme un commentaire à la réponse acceptée. – CaringDev

Questions connexes