我只是不知道在哪裏一些方法所使用的變量在方法的執行結束後走了,請參閱下面的代碼片段:這個變量是否在使用後處置?
void Foo()
{
List<object> conditionedObjList;
conditionedObjList = GetConditionedObjectList
(
new List<object>() { /*there are many unconditioned objects here*/}
);
}
我的問題;是方法GetConditionedObjectList
中定義的變量myObjList
將在myObjList
已返回之後處理還是我們需要手動處理?
private List<object> GetConditionedObjectList(List<object> originalObjList)
{
List<object> myObjList = new List<object>();
/*do some selection*/
myObjList.AddRange(new object[]{/*there are 100 conditioned objects here*/});
return myObjList;
}
不清楚你正在嘗試做什麼。 'GetConditionedObjectList'完全忽略了它的傳入參數。 (也許這是不相關的,但它掩蓋了你的問題。)當對GetConditionedObjectList的調用返回時,本地變量(在Foo中)'conditionedObjList'將成爲你在'GetConditionedObjectList'中創建的列表'myObjList'的引用。當Foo退出時,將不再有對列表的引用,並且它將被標記爲垃圾收集。 – 2011-03-22 04:58:09
聽起來像你在談論垃圾收集而不是處置(在.NET中具有不同的含義) – 2011-03-22 05:31:50
Joel:想象T是字符串,在方法'GetConditionedObjectList'中,我從傳入參數originalObjList ,例如枚舉列表以檢查originalObjList中的元素是否是以「foo」開頭的字符串,然後將該元素添加到myObjList中。並返回myObjList。 – Restart 2011-03-22 07:02:31