2008-12-11 16 views
5

J'ai vu ces deux approches pour la déclaration constante qui doivent être utilisées dans le projet.Déclaration de constantes dans un projet

  1. Constantes dans un module public.

  2. Constantes dans un noninheritable (scellé) Classe

Est-ce que tout le monde utilise une autre approche pour la declartion constante?

Y a-t-il une différence entre ces approches, les avantages et les inconvénients?

Merci.

Répondre

13

Placez la constante dans la classe où elle est la plus pertinente, par exemple. Math.Pi, Int32.MinValue etc.

Je l'ai vu différentes constantes qui devrait effectivement être énumérations aussi - en particulier pour les codes d'état etc.

Je ne pense pas qu'il soit sage de créer une classe (ou module) seulement pour constantes à moins qu'il n'y ait vraiment aucune classe sensible à laquelle ces constantes sont associées.

3

Je suis d'accord avec @Jon. Toutefois, pour les constantes propres à votre application, c'est-à-dire, les paramètres de configuration par défaut, les paramètres d'optimisation, etc., je crée parfois une classe de configuration statique fortement typée pour les conserver. J'expose les valeurs via des propriétés avec seulement des getters publics définis. De cette façon, ils peuvent être chargés à partir d'un fichier de configuration, mais référencés dans votre code en tant que valeurs fixes.

1

Ma pratique est similaire à ce que Jon déclare. La grande majorité des énumérations et des constantes sont évidemment liées à une classe ou un module particulier et sont déclarées publiques.

Le niveau le plus bas de mon logiciel s'appelle Utilitaire et contient des routines mathématiques et d'autres fonctions et méthodes d'utilité générale (plutôt qu'un utilitaire spécifique au mode de cette application). Dans un module il y a un tas de fonctions qui ne sont que des fonctions utilitaires/sous-programmes qui n'ont pas de thème commun. C'est dans ce domaine que tout enums ou constante va.

Il existe une zone similaire pour le modèle d'application où les utilitaires généralement utilisés pour cette application vont. Et là où les constantes qui ne peuvent être liées à aucune classe du MODÈLE vont.

Il y a trois domaines dans lesquels constante se trouve dans mon cadre personnel

Les déclarations de classe Le module d'utilité générale du modèle d'application Le module d'utilité générale de l'ensemble de services publics.

En pratique, seule une poignée de douzaines d'enum et constante devait être déclarée dans les deux modules utilitaires. La plupart de ces décélérations Win32 sont utilisées par la fonction Win32 qui sont importées dans mon assembly.