Constante d'espace de noms en C#

Existe-t-il un moyen de définir une constante pour un espace de noms entier, plutôt que simplement dans 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

45
demandé sur pm_2 2010-05-12 15:30:51

3 réponses

Je crois 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";
}

Et puis l'utiliser comme

class Program
{
    static void Main()
    {
        Console.WriteLine(GlobalVar.MY_CONST);
    }
}
81
répondu RvdK 2010-05-12 11:35:44

Ce n'est pas possible

À Partir de MSDN:

Le mot clé const est utilisé pour modifier une déclaration d'un champ ou d'une variable locale.

Comme vous ne pouvez avoir qu'un champ ou une variable locale dans une classe, cela signifie que vous ne pouvez pas avoir de const global. (c'est-à-dire espace de noms const)

11
répondu Oded 2015-04-22 07:17:34

Non, il n'y en a pas. Le mettre dans une classe statique ou enum.

2
répondu svinto 2010-05-12 11:34:36