CONST变量已删除.会员不能再在课外访问

Ian*_*Ian 0 c# const

我有一个名为"常量"的类,它包含我的应用程序中的所有"常量"变量(主要是字符串).

类是这样编写的:

public class Constants
{
     public const string DATABASE="myDatabase";
     public const string whatever="whatever";


     public enum Colors
     {
        Red
        Blue
        Orange
     }

     public const string Time = "07/03/2009 9:14 PM";
}
Run Code Online (Sandbox Code Playgroud)

其他类可以正常访问此类的成员.

奇怪的是,如果我删除"const",那么该变量就不能再被其他类访问了.

public class Constants
{
     public const string DATABASE="myDatabase";
     public const string whatever="whatever";


     public enum Colors
     {
        Red
        Blue
        Orange
     }

     public string Time = DateTime.Now.ToString(); //NO LONGER CONST
}
Run Code Online (Sandbox Code Playgroud)

我试图清理解决方案并重建.我也关闭/重新运行VS2005.这是一个已知的错误?还是我错过了别的什么?

谢谢!

Jar*_*Par 9

删除const修饰符后,变量将变为实例变量.实例变量只能通过类的实例访问(而不是通过类型).这是"按设计".

您需要使用以下代码来访问时间

var c = new Constants();
var t = c.Time;
Run Code Online (Sandbox Code Playgroud)

如果"const"由于某种原因不适合您的需要,特别是如果您使用的类型不能是const,则可能需要尝试静态.它在访问语义方面具有相同的效果.