为什么C#限制了可以声明为const的类型集合?
- 论坛
- 为什么C#限制了可以声明为const的类型集合?
33 浏览
为什么C#限制了可以声明为const的类型集合?
编译器错误CS0283表明,只有基本的POD类型(以及字符串、枚举和空引用)可以声明为const
。有人对此限制有什么理论吗?例如,希望能够声明其他类型的常量值,例如IntPtr。
我认为,在C#中,const
的概念实际上是语法糖,它只是用字面值替换名称的任何使用。例如,给定以下声明,任何Foo的引用都会在编译时替换为“foo”。
const string Foo = "foo";
这将排除任何可变类型,因此也许他们选择了这个限制,而不是在编译时确定给定类型是否是可变的?
admin 更改状态以发布 2023年5月23日