Existe-t-il un moyen de définir une constante pour un espace de noms entier, plutôt que simplement au sein d'une classe? Par exemple:
namespace MyNamespace
{
public const string MY_CONST = "Test";
static class Program
{
}
}
Donne une erreur de compilation comme suit:
Classe, délégué, énumération, interface ou structure attendus
Je pense que ce n'est pas possible. Mais vous pouvez créer une classe avec uniquement des constantes.
public static class GlobalVar
{
public const string MY_CONST = "Test";
}
puis l'utiliser comme
class Program
{
static void Main()
{
Console.WriteLine(GlobalVar.MY_CONST);
}
}
Ce n'est pas possible
De MSDN :
Le mot clé const est utilisé pour modifier la déclaration d'un champ ou d'une variable locale.
Puisque vous ne pouvez avoir qu'un champ ou une variable locale dans une classe, cela signifie que vous ne pouvez pas avoir un const
global. (c'est-à-dire const d'espace de noms)
Non, il n'y en a pas. Mettez-le dans une classe statique ou une énumération.
Vous pouvez utiliser les constantes dans vos autres classes si vous ajoutez également "Utilisation de la statique":
using static MyNameSpace.MyGlobals;
namespace MyNameSpace {
public static class MyGlobals{
public const bool SAVE_LOGSPACE = true;
public static readonly DateTime BACKTEST_START_DATE = new DateTime(2019,03,01);
}