foreach (BaseInfoModel model in listCanImport)
                    {
                        try
                        {
                            CurBaseInfoBLL.AddForExcel(model);  
                            CurBaseInfoBLL.Add(model);
                            model.ExcelImportFlag = 3;
                        }
                        catch (Exception ex)
                        {
                            model.SetImportMsg(Tyicd.Core.Interface.ImportFlag.ImportDataError, ex, null);
                            //model.ExcelImportFlag = 2;
                            //model.ExcelImportMsg = ex.Message;
                            continue;
                        }
                    }SetImportMsg是这个实例类型基类实现的接口方法,按理来说应该可以更新的。他的作用跟下面两句是一样的。
我调用下面两句是可以实现。
请问原因异常实例

解决方案 »

  1.   

    c#不允许在foreach中修改被迭代变量,
      

  2.   

    对于值类型,那么foreach中的变量是不能更改的;
    而对于引用类型,引用类型本身不能被更改,但是引用所指向的空间的数据则可以被更改check 下 SetImportMsg 是不是更改了其他
      

  3.   

    恩。。
    对于值类型,那么foreach中的变量是不能更改的;
    而对于引用类型,引用类型本身不能被更改,但是引用所指向的空间的数据则可以被更改
    我也知道是这样的。
    是我自己搞错啦。
    BaseInfoModel 的基类继承某个接口,但是我在BaseInfoModel也写了同样名字的属性,导致修改无效。
    谢谢大家。