C# 中的命名空间常量

发布于 2024-09-01 02:10:12 字数 216 浏览 1 评论 0原文

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

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

    static class Program
    {
    }
}

给出如下编译错误:

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

Is there any way to define a constant for an entire namespace, rather than just within a class? For example:

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

    static class Program
    {
    }
}

Gives a compile error as follows:

Expected class, delegate, enum, interface, or struct

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

街角迷惘 2024-09-08 02:10:12

我相信这是不可能的。但是您可以创建一个仅包含常量的类。

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

然后像这样使用它

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

I believe it's not possible. But you can create a Class with only constants.

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

and then use it like

class Program
{
    static void Main()
    {
        Console.WriteLine(GlobalVar.MY_CONST);
    }
}
不打扰别人 2024-09-08 02:10:12

这是不可能的

来自 MSDN

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

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

This is not possible

From MSDN:

The const keyword is used to modify a declaration of a field or local variable.

Since you can only have a field or local variable within a class, this means you cannot have a global const. (i.e namespace const)

御弟哥哥 2024-09-08 02:10:12

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

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

You can use the constants in your other classes if you add the "Using Static" too:

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);
    }
}
忆依然 2024-09-08 02:10:12

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

No, there is not. Put it in a static class or enum.

智商已欠费 2024-09-08 02:10:12

我将使用常量定义一个公共静态类:

namespace Constants
{
    public static class Const
    {
        public const int ConstInt = 420;
    }
}

在我的 Program.cs 中,我将添加以下使用:

using static Constants.Const;
using static System.Console;

现在您可以自由使用定义的常量(默认情况下是静态的)和静态控制台方法,例如

class Program
{
    static void Main(string[] args)
    {
        WriteLine(ConstInt);
    }
}

I would define a public static class with constants:

namespace Constants
{
    public static class Const
    {
        public const int ConstInt = 420;
    }
}

Inside my Program.cs, i would add the following using:

using static Constants.Const;
using static System.Console;

Now you can freely use the defined constants (which are static by default) and static Console-Methods, e. g.

class Program
{
    static void Main(string[] args)
    {
        WriteLine(ConstInt);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文