相关疑难解决方法(0)

为什么C#禁止只读局部变量?

与同事就此进行了友好的辩论.我们对此有一些想法,但想知道SO人群对此有何看法?

c# language-design readonly immutability

107
推荐指数
7
解决办法
2万
查看次数

CS0133"分配给'标识符'的表达式必须是常量" - 这背后的原因是什么?

有很多C++背景我已经习惯了写下面的内容:

const int count = ...; //some non-trivial stuff here
for( int i = 0; i < count; i++ ) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

我希望在C#中也能正常工作.然而...

byte[] buffer = new byte[4];
const int count = buffer.Length;
Run Code Online (Sandbox Code Playgroud)

产生错误CS0133:分配给'count'的表达式必须是常量.

我不明白.为什么这个无效?int是一种价值类型,不是吗?为什么我不能这样分配值并使变量不可更改?

.net c#

22
推荐指数
3
解决办法
1万
查看次数

标签 统计

c# ×2

.net ×1

immutability ×1

language-design ×1

readonly ×1