为什么我们不能将常量定义为静态变量? [重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我们不能将常量定义为静态变量? [重复]相关的知识,希望对你有一定的参考价值。
public static const string Var1 = "abc";//compile time error
public static readonly string Var2 = "def";
为什么我们不能将常量定义为静态?
答案
常量已经是静态的,因此将是多余的,并在编译时解决。
例如:
const X = 5;
int a = X + X;
基本上结束为:
int a = 5 + 5;
但是,编译器优化器会弄清楚并实际发出10。
请参阅此处以获取更多信息-http://msdn.microsoft.com/en-us/library/ms173119(v=vs.80).aspx
另一答案
一个const
字段已经是 static
。无论您在何处使用它,其字面值都会嵌入到生成的IL中。在声明时添加static
关键字将是多余的。
另一答案
来自Static Classes and Static Class Members (C# Programming Guide):
尽管字段不能声明为
static const
,但const
字段的行为本质上是静态的。它属于该类型,而不属于该类型的实例。因此,可以使用与静态字段相同的ClassName.MemberName表示法来访问const字段。不需要对象实例。
以上是关于为什么我们不能将常量定义为静态变量? [重复]的主要内容,如果未能解决你的问题,请参考以下文章