我遇到了以下 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 的参数?如果我只是将 inputObjects 作为参数传递给 SomeEvent 会发生什么?
我猜可能垃圾收集器不会看到对 inputObjects 的引用,并且会在 SomeMethod 完成时将其删除。