社区
C#
帖子详情
为什么迭代变量不能改变?
弼马温
2010-12-11 10:20:17
这样设计有什么好处?
...全文
281
14
打赏
收藏
为什么迭代变量不能改变?
这样设计有什么好处?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bourbon1795
2010-12-20
打赏
举报
回复
[Quote=引用 7 楼 smoke_1988 的回复:]
foreach(int i in arr){
i++;
}
这句话有语法错误,不能通过编译
[/Quote]
迭代变量是只读的。
flyerwing
2010-12-20
打赏
举报
回复
[Quote=引用 10 楼 sp1234 的回复:]
编译根本不然通过 --> 编译根本不让foreach迭代变量通过编译
[/Quote]
foreach不能改变内容了
bourbon1795
2010-12-20
打赏
举报
回复
[Quote=引用 10 楼 sp1234 的回复:]
编译根本不然通过 --> 编译根本不让foreach迭代变量通过编译
[/Quote]
目的不还是为了让迭代变量只读不写吗?只不过方法不同。
csproj
2010-12-20
打赏
举报
回复
因为foreach是迭代器的简写形式。
最后会编译成对迭代器来访问集合的成员
迭代器IEnumerator接口如下:
public interface IEnumerator
{
bool MoveNext();
object Current { get; }
void Reset();
}
因为返回值的Current 属性是只读的,所以无法修改。
不过想不通为什么不设计成object Current { get;set; }
刚看了几个常用的集合源码,Current 明明可以设计成可写的。
估计是为了兼容所有的集合吧,请哪位高人解释下吧
以专业开发人员为伍
2010-12-20
打赏
举报
回复
编译根本不然通过 --> 编译根本不让foreach迭代变量通过编译
以专业开发人员为伍
2010-12-20
打赏
举报
回复
[Quote=引用 8 楼 bourbon1795 的回复:]
迭代变量是只读的。
[/Quote]
瞎说。编译根本不然通过,根本谈不上只读还是不只读。
PitTroll
2010-12-20
打赏
举报
回复
[Quote=引用 7 楼 smoke_1988 的回复:]
foreach(int i in arr){
i++;
}
这句话有语法错误,不能通过编译
[/Quote]
用for循环不就可以了
弼马温
2010-12-19
打赏
举报
回复
foreach(int i in arr){
i++;
}
这句话有语法错误,不能通过编译
PitTroll
2010-12-19
打赏
举报
回复
不能改变是什么意思?
弼马温
2010-12-19
打赏
举报
回复
比如说,我有一个链表,我要给链表里每一个变量赋初值。用下标的方式不是很讨厌么?
jointan
2010-12-11
打赏
举报
回复
[Quote=引用 3 楼 smoke_1988 的回复:]
引用 2 楼 jointan 的回复:
课堂上点名时,允许学生随便出入,这名点的还有意义吗?
比如说点完名了到另一个教室去等待上课!!!!
[/Quote]
那也得先点完吧.
弼马温
2010-12-11
打赏
举报
回复
[Quote=引用 2 楼 jointan 的回复:]
课堂上点名时,允许学生随便出入,这名点的还有意义吗?
[/Quote]
比如说点完名了到另一个教室去等待上课!!!!
jointan
2010-12-11
打赏
举报
回复
课堂上点名时,允许学生随便出入,这名点的还有意义吗?
一切为了你
2010-12-11
打赏
举报
回复
什么意思
for 循环
迭代
变量
捕获
迭代
变量
这是在学习Go 程序设计中遇到的一个比较重要的一个警告。这是个 Go 语言的词法作用域规则的陷阱。看完之后感觉是真的一个比较让人疑惑困惑的地方。所以特地记录一下。由标题就可以
C# foreach 值类型及引用类型
迭代
变量
改变
的方式
C#中foreach
不能
改变
迭代
变量
的值 然而此种说法只适用与值类型,更改值类型时会
改变
在栈上的内存分布 引用类型由于是引用地址的变更,不影响内存分布,所以能够在foreach中更改 至于引用类型中的特殊string类型...
python
迭代
变量
_如何在Python中更改循环中
迭代
变量
的值?
但我真的很好奇,知道是否有任何方法可以
改变
我在for循环本身. 如果绝对必须知道,这是我的代码: for i in xrange(0,len(tokens)): tokens[i]=tokens[i].translate(string.maketrans("",""),string.punctuation) if ...
为什么
不能
在for循环中使用const声明
迭代
变量
这也是为什么 for let能够解决定时器奇怪输出的原因。 如果for的每次循环中的 i 是同一个,只是值得变化,那么由于定时器是宏任务,会在同步代码之后执行。那么它输出得应该是 5 5 5 5 5。但是现在输出得不同,说明 ...
【MATLAB】
变量
似乎会随
迭代
次数而
改变
,请预分配内存以获得更高的运算速度。
指示的
变量
或数组的大小似乎随着每次循环
迭代
而
改变
。 通常,出现此消息是因为阵列通过分配或连接而增长。 通过分配或连接来增长阵列可能很昂贵。 对于大型数组,MATLAB必须分配一个新的内存块,并在进行每次赋值时...
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章