C# 中的命名空间常量

Posted

技术标签:

【中文标题】C# 中的命名空间常量【英文标题】:Namespace constant in C# 【发布时间】:2011-02-18 14:05:06 【问题描述】:

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

namespace MyNamespace
    
    public const string MY_CONST = "Test";

    static class Program
    
    

给出如下编译错误:

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

【问题讨论】:

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

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

public static class GlobalVar

    public const string MY_CONST = "Test";

然后像这样使用它

class Program

    static void Main()
    
        Console.WriteLine(GlobalVar.MY_CONST);
    

【讨论】:

+1 因为这是微软推荐的方法msdn.microsoft.com/en-us/library/bb397677.aspx 顺便说一句,实现这一点的另一种方法是使用您的 web.config 或 app.config(取决于您拥有哪一个)。 ***.com/a/4256864/105539【参考方案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】:

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

【讨论】:

以上是关于C# 中的命名空间常量的主要内容,如果未能解决你的问题,请参考以下文章

php命名空间

PHP 命名空间(namespace)

18PHP 命名空间(namespace)

php之快速入门学习-17(PHP 命名空间)

PHP 命名空间(namespace)

C#中的命名空间和程序集