C# C中的名称空间常量#

C# C中的名称空间常量#,c#,namespaces,constants,C#,Namespaces,Constants,有没有办法为整个名称空间定义常量,而不仅仅是在类中?例如: namespace MyNamespace { public const string MY_CONST = "Test"; static class Program { } } 给出一个编译错误,如下所示: 预期的类、委托、枚举、接口或结构这是不可能的 发件人: const关键字用于修改字段或局部变量的声明 由于类中只能有字段或局部变量,这意味着不能有全局常量。(即名称空间常量)不,没有。将

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

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

    static class Program
    {
    }
}
给出一个编译错误,如下所示:

预期的类、委托、枚举、接口或结构这是不可能的

发件人:

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


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

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

我认为这是不可能的。但是您可以创建一个只包含常量的类

public static class GlobalVar
{
    public const string MY_CONST = "Test";
}
然后像这样使用它

class Program
{
    static void Main()
    {
        Console.WriteLine(GlobalVar.MY_CONST);
    }
}

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


+1由于这是Microsoft推荐的方法,另一种实现方法是使用web.config或app.config(取决于您使用的是哪种)。请注意,“常量变量”是一个矛盾修饰法。变量是不同的,这就是为什么它们被称为“变量”。常数保持不变,这就是为什么它们被称为常数。变量是存储位置,常量是值。他们完全不同;不可能有“常量变量”这样的东西。
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);
}