Je veux un moyen d'avoir des "définitions de préprocesseur global" de telle sorte que je puisse changer une seule valeur avant la compilation pour ajouter ou supprimer des fonctionnalités de mon programme. Actuellement, je suis un "script global" (appelé God.cs) avec consts tels que:Comment faire des définitions de préprocesseur global dans un seul endroit sans avoir beaucoup d'avertissements?
public const bool PRINT_RUN_VALUES = true;
public const bool DEBUG_MOVEMENT = false;
public const bool DOUBLE_SPEED = false;
Avec tous les scripts pertinents à l'aide de ces valeurs, par exemple:
dans le script 1:
if (God.PRINT_RUN_VALUES) {
float averageDist = /* calculate values */
print("Script1: averageDist = " + averageDist);
}
dans le script 2:
if (God.PRINT_RUN_VALUES) {
print("Script2: radius = " + radius);
print("Script2: time = " + time);
}
Le problème avec cette méthode est que je reçois des tonnes de
CS0162: Code Inaccessible détecté
avertissements. Je peux désactiver ces avertissements en utilisant:
#pragma warning disable 0162
#pragma warning disable 0429
Mais je ne veux pas faire cela parce que ces avertissements peuvent être utiles dans les cas qui ne concernent pas ces valeurs de God.cs. Une autre solution pourrait être d'utiliser des définitions de préprocesseur classiques tels que:
#define PRINT_RUN_VALUES
...
#if (PRINT_RUN_VALUES)
float averageDist = /* calculate values */
print("Script1: averageDist = " + averageDist);
#endif
Cependant, autant que je sais que cela me faudrait au début de chaque fichier .cs ajouter « #define PRINT_RUN_VALUES », qui deviendrait un cauchemar quand je veux éteindre rapidement ou sur ces déclarations globales. Je veux que toutes ces définitions globales soient un seul endroit pour que je puisse rapidement les éteindre et les rallumer.
Comment est-ce que je peux définir quelque chose de préprocesseur tel qu'il n'est pas inclus dans chaque script? Je sais qu'il existe des définitions de proprocessor qui répondent à ce critère, telles que des définitions pour vérifier quel système d'exploitation compile le logiciel. Ou y a-t-il un autre moyen de contourner cela?
Vous pouvez les définir dans les propriétés du projet, c'est ainsi que DEBUG est défini. – DavidG
Donc, vous ne comprenez pas vraiment l'avertissement et comment cette très mauvaise pratique va avoir des ennuis. Qu'est-ce que vous voulez vraiment savoir? Voulez-vous connaître la vérité qui dérange ou préférez-vous ne pas être rappelé de ce que vous ne connaissez pas? –