2009-07-04 5 views
1

Je voudrais offrir une liste de constantes dans ma DLL.Comment créer un tableau statique constant de chaînes dans C#?

Exemple d'utilisation:

MyDLL.AddHouse(HouseName, MyDll.HOUSETYPES.Big) 
MyDLL.AddHouse(HouseName, MyDll.HOUSETYPES.Small) 

Essayé:

public static readonly string[] HOUSETYPES = 
{ 
    "Big", "Small" 
}; 

Mais cela ne me fait:

MyDLL.AddHouse(HouseName, MyDll.HOUSETYPES.ToString()) 

Toutes les idées? Merci.

+0

Une raison de ne pas utiliser une énumération? –

Répondre

5

Essayez d'utiliser une énumération. En C# c'est la meilleure option. Comme les énumérations sont fortement typées, au lieu d'avoir une API qui prend une chaîne, votre API prendra une valeur du type de votre énumération.

public enum HouseTypes 
{ 
    Big, 
    Small 
} 
MyDll.Function(HouseTypes Option) 
{ 
} 

Vous pouvez ensuite appeler ce code par l'ENUM

{ 
    MyDll.Function(HouseTypes.Big) 
} 

Pour votre information comme un style de codage majuscules en C# est réservé aux constantes seulement.

+1

Je ne pense pas que toutes les majuscules sont recommandées, même pour les constantes. – SolutionYogi

+1

Correct - les directives de Microsoft indiquent que toutes les majuscules ne devraient jamais être utilisées en C#. http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/f75d6cb4-084f-4f2a-95c0-6d7f1b67c978 – csharpforevermore

4
public static class HouseTypes 
{ 
    public const string Big = "Big"; 
    public const string Small = "Small"; 
} 

C'est une bonne idée de suivre les normes de dénomination .NET pour nommer vos classes et variables. Par exemple. La classe s'appellera HouseTypes (Pascal Case) et non HOUSETYPES (majuscule).