C#静态和常量有什么区别?

时间:2010-12-18 12:18:37

标签: c# variables static constants

正如它所说的那样。我将要在我正在编写的程序中定义一个常量或静态值,并且对于为什么要使用其中一个而感到困惑。正如the only related question我在问这个问题时会得到一个想要立即标记为静态和常数的人,我怀疑我不是唯一一个对这些概念有点失落的人。

那么我为什么要使用静态?为什么我会使用常量?有什么区别?他们是同义词吗?如果是这样,那很酷,但如果不是,为什么不呢?谢谢!

3 个答案:

答案 0 :(得分:11)

const在编译时处理。每个对该常量的引用都被常量值替换。

static非常不同。它是一个仅存在一次但属于该类型的所有对象的变量。它可以编辑,除非标记为readonly(或给定一个getter但没有setter)。如果它被标记为readonly那么它本质上是一个常量,但它是在运行时处理的,而不是由编译器处理的。

答案 1 :(得分:5)

首先,他们是同义词。

  • static将成员标记为属于类型
  • const表示无法更改成员。该值在编译时确定,并在任何位置替换。

为了更好地了解static的使用方式,请阅读Static Classes and Static Members

答案 2 :(得分:1)

五分钟后我才知道this

还有其他意见吗?