【问题标题】:Static Constants in C#C# 中的静态常量
【发布时间】:2010-10-24 23:06:57
【问题描述】:

我有这个代码;

using System;

namespace Rapido
{
    class Constants
    {
        public static const string FrameworkName = "Rapido Framework";
    }  
}

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

如何使这个常量在其他类中可用,而不必创建它的新实例? (即通过Rapido.Constants.FrameworkName直接访问)

【问题讨论】:

标签: c# string constants


【解决方案1】:

您不需要将其声明为静态 - public const string 就足够了。

【讨论】:

  • 事实上,将其声明为静态是错误的,因为这意味着需要进行内存分配和运行时初始化,而常量都不需要。
【解决方案2】:
public static class Constants
{
    public const string FrameworkName = "Rapido Framework";
}

【讨论】:

  • 发帖者要求一种不实例化类的方法,并让它包含常量。
  • 您不必创建实例来获取常量值。常量就像静态一样工作。除了它们在编译时被复制而不是被引用。
  • 否决者 (19/05/2011) 请发表评论。谢谢。
【解决方案3】:

一个 const 已经是静态的,因为它不能在实例之间改变。

【讨论】:

  • 对......所以我不明白为什么当你明确表示它时编译器会犹豫......
  • 我了解它的实现方式。我在问为什么会这样。
  • 注意不要混淆 const 和 static,它们的含义不同。 const 指的是项目的值,而 static 指的是项目存储的分配方式。见stackoverflow.com/questions/842609/…
猜你喜欢
  • 2012-07-14
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-25
相关资源
最近更新 更多