如何在C#/ .NET中声明一个常量?

mar*_*zzz 3 .net c# constants

我有以下代码:

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

    public iSito()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果从任何上下文(在我的情况下,一个.ascx.cs)我尝试使用iSito.myVar,我不能得到任何价值.

为什么?

Bro*_*ass 11

您的示例是正确的并且应该有效 - consts自动是静态的,因此您可以访问该字段iSito.myVar- 确保您使用完整名称空间限定,与访问该类所需的相同(或添加适当的using语句).


Fre*_*els 6

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

编译客户端应用程序时,const值在IL中写为文字.如果更改const,则必须重建客户端应用程序.

如果将const更改为只读,会发生什么?(仅用于测试目的).

  • @markzzz关于重建的潜在需求的好点.当值是公共的时,通常鼓励使用静态只读,只有在内部或私有时才使用const (2认同)