-1

假设我有一个名为 MyObjects 的对象集合。

现在我正在循环上面的集合并将它添加到另一个名为 MyObject2 的对象中。MyObjects 有一个名为“文件”的属性。

当我循环我的第一个集合时,我想操纵 files 属性的值。首先,我可以按照如下所示的代码进行操作。如果是,我收到如下错误:

{Cannot evaluate expression because the current thread is in a stack overflow state.} 

List<objects> MyObjects = Populate(); 
List<objects> MyObject2 = new List<objects>();
foreach(var item in MyObjects)
{
   item.files = "test file" + item.files;
   MyObject2.add(item);
}

编辑 ::

文件属性:

 [Transient]
        protected string _files;
        public string files
        {
            get
            {
               return _files;
            }
            set
            {
                _files= value;
            }
        }
4

1 回答 1

2

心理调试 - 我怀疑你的files财产看起来像这样:

public string files
{
    get { return files; }
    set { files = value; }
}

这将永远递归,直到堆栈爆炸。不过,这只是猜测,因为您没有向我们展示关键的代码。

于 2012-11-30T13:02:04.167 回答