-1

MyObjectsというオブジェクトのコレクションがある場合に言います。

今、私は上記のコレクションをループして、MyObject2と呼ばれる別のオブジェクトに追加しています。MyObjectsには「files」というプロパティがあります。

最初のコレクションをループしているときに、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 に答える