我有一个名为"常量"的类,它包含我的应用程序中的所有"常量"变量(主要是字符串).
类是这样编写的:
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.这是一个已知的错误?还是我错过了别的什么?
谢谢!
删除const修饰符后,变量将变为实例变量.实例变量只能通过类的实例访问(而不是通过类型).这是"按设计".
您需要使用以下代码来访问时间
var c = new Constants();
var t = c.Time;
Run Code Online (Sandbox Code Playgroud)
如果"const"由于某种原因不适合您的需要,特别是如果您使用的类型不能是const,则可能需要尝试静态.它在访问语义方面具有相同的效果.