`
mmdev
  • 浏览: 12936332 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

C#中foreach语句的一个小问题

 
阅读更多
想来断断续续用C#也有好一段时间了,今天才发现foreach语句中迭代变量(Iteration Variable)是read-only的,囧~~
不过此read-only也是相对的,对于Values-type和reference-type要区别对待。
对于值类型,那么foreach中的变量是不能更改的;而对于引用类型,引用类型本身不能被更改,但是引用所指向的空间的数据则可以被更改。
如示例1和示例2:
int[] arr = new int[]{1,2,3,4,5};
foreach(int item in arr)
{
	++item;     // 提示Compile error
}

class Sample
{
	public string TestMe = string.Empty;
}

class TestSample
{
	public void Test()
	{
		Sample[] samples = new Sample[2];
		
		samples[0] = new Sample();
		samples[0].TestMe = "Sample1 OK";
		
		samples[1] = new Sample();
		samples[1].TestMe = "Sample2 OK";
		
		foreach(var item in samples)
		{
			item.TestMe = "Data Referenced is Changed~~";   // 运行OK
		}
	}
}

DevDiv同步博客:http://www.devdiv.com/home.php?mod=space&uid=140638&do=blog&quickforward=1&id=43476



分享到:
评论

相关推荐

    C#中foreach语句深入研究

    主要介绍了C#中foreach语句深入研究,本文通过手动实现迭代器来了解foreach语句的本质,揭示其原理,需要的朋友可以参考下

    数据结构 C#版 链表 加强版 支持 foreach语句

    数据结构 C#版 链表 加强版 支持 foreach语句 ,给初学者的一个实例

    C#中foreach语句使用break暂停遍历的方法

    主要介绍了C#中foreach语句使用break暂停遍历的方法,涉及C#中break语句跳出foreach循环的使用技巧,非常具有实用价值,是C#初学者必须掌握的重要技巧,需要的朋友可以参考下

    C#使用foreach语句搜索数组元素的方法

    主要介绍了C#使用foreach语句搜索数组元素的方法,涉及C#使用foreach语句遍历数组实现搜索功能的技巧,非常具有实用价值,需要的朋友可以参考下

    C#从foreach语句中枚举元素看数组详解

    GetEnumerator()方法返回一个实现lEnumerable接口的枚举,接着foreach语句就可以使用IEnumerable接口迭代集合了。 GetEnumerator()方法用IEnumerable接口定义,foreach语句并不真的需要在集合类中实现这个接口。有一...

    C#使用foreach语句简单遍历数组的方法

    主要介绍了C#使用foreach语句简单遍历数组的方法,涉及C#中foreach语句的使用技巧,非常具有实用价值,需要的朋友可以参考下

    C#中用foreach语句遍历数组及将数组作为参数的用法

    foreach 语句按数组或集合类型的枚举器返回的顺序处理元素,该顺序通常是从第 0 个元素到最后一个元素。 例如,以下代码创建一个名为 numbers 的数组,并使用 foreach 语句循环访问该数组: int[] numbers = { 4, ...

    C#使用foreach语句遍历集合类型的方法

    主要介绍了C#使用foreach语句遍历集合类型的方法,可实现通过foreach语句遍历集合类的功能,需要的朋友可以参考下

    轻松学习C#的foreach迭代语句

    C#语言提供的foreach语句是一个for语句循环的捷径,而且还促进了集合类的更为一致,先来看看它的定义格式: foreach语句的定义格式为:  foreach(类型 变量 in 集合)  {  子语句;  }  每执行一次内嵌语句,...

    C#使用foreach语句遍历二维数组的方法

    本文实例讲述了C#使用foreach语句遍历二维数组的方法。分享给大家供大家参考。具体分析如下: 如果通过for语句循环遍历二维数组需要两重循环才可以,二foreach语句只需要一次可以完全遍历整个二维数组,下面是代码...

    C#中foreach循环对比for循环的优势和劣势

    而且foreach语句很简洁,但是它的优点不仅仅在于此,它的效率也是最高的。本文将详细给大家关于C#中foreach循环对比for循环的优势和劣势,下面话不多说了,来一起看看详细的介绍吧。 一、foreach循环的优势 C#支持...

    C#使用foreach语句遍历队列(Queue)的方法

    主要介绍了C#使用foreach语句遍历队列(Queue)的方法,涉及foreach语句的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    深入理解C#中foreach遍历的使用方法

    foreach循环用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成。in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素。 该循环的运行过程如下:每一次循环时,从集合...

    C#使用foreach语句遍历堆栈(Stack)的方法

    主要介绍了C#使用foreach语句遍历堆栈(Stack)的方法,涉及C#操作foreach实现遍历堆栈的技巧,非常具有实用价值,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics