Tag: constants

为什么C#限制可以声明为const的类型集?

编译器错误CS0283表示只能将基本POD类型(以及字符串,枚举和空引用)声明为const 。 有没有人有关于这种限制的理由的理论? 例如,能够声明其他类型的const值(例如IntPtr)会很好。 我相信const的概念实际上是C#中的语法糖,它只是用文字值替换了名称的任何用法。 例如,给定以下声明,在编译时对Foo的任何引用都将替换为“foo”。 const string Foo = “foo”; 这将排除任何可变类型,因此他们可能选择此限制而不必在编译时确定给定类型是否可变?