Константа пространства имен в C # - PullRequest
50 голосов
/ 12 мая 2010

Есть ли способ определить константу для всего пространства имен, а не только внутри класса? Например:

namespace MyNamespace
{    
    public const string MY_CONST = "Test";

    static class Program
    {
    }
}

Выдает ошибку компиляции следующим образом:

Ожидаемый класс, делегат, перечисление, интерфейс или структура

Ответы [ 4 ]

88 голосов
/ 12 мая 2010

Я считаю, что это невозможно. Но вы можете создать класс только с константами.

public static class GlobalVar
{
    public const string MY_CONST = "Test";
}

, а затем используйте его как

class Program
{
    static void Main()
    {
        Console.WriteLine(GlobalVar.MY_CONST);
    }
}
11 голосов
/ 12 мая 2010

Это невозможно

С MSDN :

Ключевое слово const используется для изменения объявления поля или локальной переменной.

Поскольку внутри класса вы можете иметь только полевую или локальную переменную, это означает, что вы не можете иметь глобальную const. (т.е. пространство имен const)

2 голосов
/ 12 мая 2010

Нет, нет. Поместите это в статический класс или перечисление.

1 голос
/ 30 марта 2019

Вы можете использовать константы в других ваших классах, если добавите «Использование статики» тоже:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...