【问题标题】:How to declare a constant in C#/.NET?如何在 C#/.NET 中声明一个常量?
【发布时间】:2011-11-14 13:36:52
【问题描述】:

我有以下代码:

public class iSito
{
    public const string myVar = "5262";

    public iSito()
    {

    }
}

现在,如果从任何上下文(在我的情况下为 .ascx.cs)我尝试使用 iSito.myVar,我无法获得任何值。

为什么?

【问题讨论】:

  • 您能否在您的 .ascx.cs 文件中发布代码示例?另外,“我无法获得任何价值”具体是什么意思?
  • 你能提供更多信息吗?你有编译错误吗?

标签: c# .net constants


【解决方案1】:

您的示例是正确的并且应该可以工作 - 常量是自动静态的,因此您可以以 iSito.myVar 访问该字段 - 确保您符合完整的命名空间,与访问类所需的相同(或添加适当的 using 语句)。

【讨论】:

    【解决方案2】:

    iSito 类是否在另一个 DLL/程序集中?如果是这样,您是否重新构建了 DLL 并重新构建了使用该 DLL 的应用程序?

    当您编译客户端应用程序时,常量值在 IL 中作为文字写入。如果更改 const,则必须重新构建客户端应用程序。

    如果将 const 更改为 readonly 会发生什么? (仅用于测试目的)。

    【讨论】:

    • 当您将变量声明为只读时,您无需在更改该变量的值时重新构建客户端应用程序。
    • @markzzz 关于重建的潜在需求的好点。通常鼓励在值为 public 时使用 static readonly,而仅在 internal 或 private 时使用 const
    【解决方案3】:

    iSito.myVar 有效。我试过了。

    【讨论】:

    • 没什么帮助,你可以提出它可能不适用于 OP 的可能原因。 (如缺少using指令)
    • 好的,我只是想证明这个语法必须有效。
    猜你喜欢
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 2011-09-05
    • 2010-10-30
    相关资源
    最近更新 更多