【问题标题】:Namespace constant in C#C# 中的命名空间常量
【发布时间】:2023-03-23 03:15:01
【问题描述】:

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

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

    static class Program
    {
    }
}

给出如下编译错误:

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

【问题讨论】:

  • 请注意,“常量变量”是矛盾的。变量各不相同,这就是为什么它们被称为“变量”。常量保持不变,这就是为什么它们被称为常量。变量是存储位置,常量是。它们完全不同;不可能有“常量变量”这样的东西。

标签: c# namespaces constants


【解决方案1】:

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

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

然后像这样使用它

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

【讨论】:

【解决方案2】:

这是不可能的

来自MSDN

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多