好像枚举器只是用来遍历用的,返回的引用是一个引用本身的拷贝。
如果我用容器存储引用类型,能否使用枚举器来使得某些元素做改变呢? 枚举器并不等于迭代器吧
------解决思路----------------------
没看懂你的意思。先简单地试着回答你的字面上的问题:
1. 迭代器返回的是一个 IEnumerable 对象,是容器而不是容器里的对象。迭代器是一个语法糖,或者说编译器根据它的声明来自动生成代码。
2. 有人翻译到中文为“枚举器”,我是觉得“无所谓、可以理解的”。但是可能别人会觉得用词不当。
3. 迭代器用来枚举对象(返回),至于说用对象给其它引用变量赋值,那还是要看你的具体代码。跟枚举功能无关。
------解决思路----------------------
张三、李四、王二麻子,这就是枚举
如过
int[] a = { 1, 2, 3 };打印的不是 1,5,3 的话,那么请把C#丢到爪哇国去
a[1] = 5;
Console.WriteLine(string.Join(",", a));
若如你所说:枚举返回的是副本,那么我们如何去改变数组成员的值呢?
IEnumerator 可枚举
IEnumerable 可用 foreach 枚举(简单的迭代)
不管里面是什么,实现了 IEnumerator 就可以 1、2、3、4....张三、李四、王二麻子 逐个的访问
实现了 IEnumerable 就可以自动化访问每一个成员,连名字都不需要知道
语言的表述方式不是重点,关键在于其本质
就如我们在吸纳西方先进科学技术时需要掌握英语一样,欧美人不也在学习中文,以期融入汉文化为主导的社会吗