C# 中 foreach 使用方法.docx

上传人:牧羊曲112 文档编号:3153666 上传时间:2023-03-11 格式:DOCX 页数:4 大小:37.78KB
返回 下载 相关 举报
C# 中 foreach 使用方法.docx_第1页
第1页 / 共4页
C# 中 foreach 使用方法.docx_第2页
第2页 / 共4页
C# 中 foreach 使用方法.docx_第3页
第3页 / 共4页
C# 中 foreach 使用方法.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《C# 中 foreach 使用方法.docx》由会员分享,可在线阅读,更多相关《C# 中 foreach 使用方法.docx(4页珍藏版)》请在三一办公上搜索。

1、C# 中 foreach 使用方法C# 中 foreach 使用方法因为是从一个类的集合中删除掉一个元素。这样就要遍历整个集合,而foreach正是为遍历准备的新玩意。自然而然用上了。于是代码类似如下:string temp = name.Text; / 从TextBox中读出数据 foreach (LCourse cou in Data.myCourse) / 在List中遍历 if (cou.name = temp) / 判断cou的名字匹配 Data.myCourse.Remove(cou); / 匹配的即为要删除的,从列表中去除 break; / 跳出循环 很容易就想到这么用forea

2、ch,貌似也没错误。但是印象中关于foreach的注意点就是只适用于遍历读取,不能修改。上边的代码却删除成功。这样,矛盾的种子就种在了心里,到底foreach是个什么东西?过程:看了MSDN文档,可是文档里的示例用到时都是遍历读取每个元素,所以帮助不大。相关测试,异常,编译错误反倒有很大用处。过程细节和总结:1.自定义整型数组然后遍历修改foreach myint+=8;错误:“myint”是一个“foreach 迭代变量”,无法为它赋值G:TESTVS.C#testforeachProgram.cs 15 27 testforeach2.自定义类,在类中定义函数对私有成员进行操作,然后遍历类

3、对象并调用函数public class MyClass / 自定义的测试类 private int i = 0; public void change public override string ToString return i.ToString; MyClass myTest = new MyClass10; / 测试代码片段 foreach (MyClass mc in myTest) mc.change; Console.WriteLine(mc.ToString); 通过了编译,但是抛出异常,NullRefferenceException,未将对象引用设置到对象的实例。3.就是像开

4、头测试的例子,稍有改动,移除后不用break跳出List myString = new List; myString.Add(ab); myString.Add(cd); foreach (string s in myString) myString.Remove(s); 编译通过了,但运行时抛出异常,InvalidOperationException,集合已修改;可能无法执行枚举操作。通过上面三个测试例子和开头的实际例子,我貌似看到了foreach的某种东西。第一,不能修改的是foreach引用变量,因为它是引用的,对它的修改没有意义也没有作用,它就像一个c/c+指针那样对集合中的元素进行指向引用;我们能通过引用看到它,但是没有能力动它。第二,in之前的变量是引用变量,但in之后的集合确是实实在在的,所以可以对它操作,像.ADD;REMOVE等方法可以使用。第三,foreach引用变量大概是通过地址指向后面的集合,当修改了集合的元素时,地址可能发生某种改变,所以不跳出循环继续遍历时,就可能出现引用找不到的情况。最后,也许说的不精准,但这就是我理解的全部了。首先表扬下自己这样的思路和精神,至于技术深度,大概没什么。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号