2012-01-21 64 views
-2

在以下代码中,Field1和Field2变量之间有什么区别,都可以静态方式访问。C#,使用static和const

public static class FieldName 
{ 
    public static const string Field1 = "Field1"; 
    public const string Field2 = "Field2"; 
} 

谢谢
阿米特

+0

这并不编译我:常量“ConsoleApplication.Program.FieldName.Field1”不能标记静态 – rene

回答

4

error CS0504: The constant 'FieldName.Field1' cannot be marked static

所有常量声明都是隐式静态的,C#规范声明禁止使用静态修饰符(冗余)包含。我相信这是为了避免如果读者看到两个常量,一个声明为静态而另一个不是 - 他们可以轻易地认为规范中的差异意味着语义上的差异可能会发生混淆。

来源:http://blogs.msdn.com/b/csharpfaq/archive/2004/03/12/why-can-t-i-use-code-static-code-and-code-const-code-together.aspx

+0

是错误是编译时间,但同时键入代码事与愿违显示任何错误,因此感到困惑。 –