C#中的命名空间常量

时间:2010-05-12 11:30:51

标签: c# namespaces const

有没有办法为整个命名空间定义一个常量,而不仅仅是在一个类中?例如:

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

    static class Program
    {
    }
}

给出如下编译错误:

预期的类,委托,枚举,接口或结构

4 个答案:

答案 0 :(得分:87)

我相信这是不可能的。但是你可以创建一个只有常量的类。

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

然后像

一样使用它
class Program
{
    static void Main()
    {
        Console.WriteLine(GlobalVar.MY_CONST);
    }
}

答案 1 :(得分:11)

这是不可能的

来自MSDN

  

const 关键字用于修改字段或局部变量的声明。

由于您在类中只能有字段或局部变量,这意味着您不能拥有全局const。 (即命名空间const)

答案 2 :(得分:2)

不,没有。把它放在静态类或枚举中。

答案 3 :(得分:0)

如果您还添加了“使用静态”,则可以在其他类中使用常量:

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);
}