昨天做老师的网站作业要对一些对象做添加修改删除处理别的到没什么删除时出现了点问题似的
因为是从一个类的集合中删除掉一个元素这样就要遍历整个集合而foreach正是为遍历准备的新玩意自然而然用上了于是代码类似如下
string temp = name
Text; // 从TextBox中读出数据
foreach (LCourse cou in DatamyCourse) // 在List<LCourse>中遍历
{
if (couname == temp) // 判断cou的名字匹配
{
DatamyCourseRemove(cou); // 匹配的即为要删除的从列表中去除
break; // 跳出循环
}
}
很容易就想到这么用foreach貌似也没错误但是印象中关于foreach的注意点就是只适用于遍历读取不能修改上边的代码却删除成功这样矛盾的种子就种在了心里到底foreach是个什么东西?
过程
看了MSDN文档可是文档里的示例用到foreach时都是遍历读取每个元素所以帮助不大相关测试异常编译错误反倒有很大用处
过程细节和总结
自定义整型数组然后遍历修改
foreach(int myint in myArray)
{ myint+=}
错误 myint是一个foreach 迭代变量无法为它赋值 G:\TEST\VSC#\testforeach\Programcs testforeach
自定义类在类中定义函数对私有成员进行操作然后遍历类对象并调用函数
public class MyClass // 自定义的测试类
{
private int i = ;
public void change()
{
i = ;
}
public override string ToString()
{
return iToString();
}
}
MyClass[] myTest = new MyClass[]; // 测试代码片段
foreach (MyClass mc in myTest)
{
mcchange();
ConsoleWriteLine(mcToString());
}
通过了编译但是抛出异常NullRefferenceException未将对象引用设置到对象的实例
[] []