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# 中的命名空间常量的主要内容,如果未能解决你的问题,请参考以下文章