C#中的静态常量

ano*_*ard 47 c# string const

我有这个代码;

using System;

namespace Rapido
{
    class Constants
    {
        public static const string FrameworkName = "Rapido Framework";
    }  
}
Run Code Online (Sandbox Code Playgroud)

Visual Studio告诉我: The constant 'Rapido.Constants.FrameworkName' cannot be marked static

如何在不创建新实例的情况下从其他类中获取此常量?(即通过直接访问它Rapido.Constants.FrameworkName)

Mit*_*eat 117

public static class Constants
{
    public const string FrameworkName = "Rapido Framework";
}
Run Code Online (Sandbox Code Playgroud)

  • 您不必创建实例来获取常量值.常量就像静力学一样工作.除了在编译时复制它们而不是引用它们. (12认同)
  • 我认为*这*实际上是正确的做法. (3认同)
  • 发帖者要求一种不实例化类并让它包含常量的方法。 (3认同)
  • 这位贬低者(19/05/2011)将会发表评论.谢谢. (3认同)
  • 不是反对者,但我认为这是因为解决方案无法解释本身。 (2认同)

ggf*_*416 31

const已经是静态的,因为它不能在实例之间更改.

  • 注意不要混淆常量和静态,它们意味着不同的东西.const表示项目的值,而static表示项目存储的分配方式.见http://stackoverflow.com/questions/842609/why-does-c-not-allow-const-and-static-on-the-same-line/842649#842649 (12认同)

And*_*nan 11

您不需要将其声明为静态 - 公共const字符串就足够了.

  • 事实上,将它声明为静态是一个错误,因为这意味着需要进行内存分配和运行时初始化,而常量不需要这样做. (3认同)