난 그냥 몇 가지 방법에 사용되는 변수가 완료 메소드의 실행 후 간 경우, 아래의 코드를 참조하십시오 모르겠어요 :이 변수는 사용 후에 폐기됩니까?
void Foo()
{
List<object> conditionedObjList;
conditionedObjList = GetConditionedObjectList
(
new List<object>() { /*there are many unconditioned objects here*/}
);
}
내 질문; myObjList
에 정의 된 GetConditionedObjectList
은 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가 종료되면 더 이상 목록에 대한 참조가 없으며 가비지 수집으로 표시됩니다. –
당신이 쓰레기 수거보다는 .NET에서 다른 의미를 가지고있는 것처럼 들린다. –
Joel에게 : T가 문자열이고, 'GetConditionedObjectList'메서드에서 들어오는 매개 변수 인 originalObjList를 선택한다고 상상해보십시오. , 예. originalObjList의 요소가 "foo"로 시작하는 문자열인지 확인하기 위해 목록을 열거 한 다음 요소를 myObjList에 추가하십시오. myObjList를 반환합니다. – Restart