次の C# 関数に出会いました。
void SomeMethod(List<ISomeInterface> inputObjects)
{
IList<ISomeInterface> newListOfObjects = null;
if (inputObjects != null)
{
//create a new list
newListOfObjects = new List<ISomeInterface>();
//copy the input parameter into the new list
foreach (ISomeInterface thing in inputObjects)
{
newListOfObjects.Add(thing);
}
}
//send an event to another module with the new list as parameter
DelegateHandler.AsyncInvoke(this.SomeEvent, newListOfObjects);
}
私の質問は次のとおりです: SomeEvent のパラメーターとなるオブジェクトを作成する必要がありますか? 入力オブジェクトをパラメータとして SomeEvent に渡すとどうなるでしょうか?
おそらく、ガベージ コレクターは inputObjects への参照を認識せず、SomeMethod が終了したときにそれを削除するのではないかと推測しています。