【发布时间】:2016-04-07 18:33:03
【问题描述】:
在以下场景中,“Pool”是按值返回还是按引用返回?
private static List<Item> Pool;
public static List<Item> GetPool()
{
return Pool;
}
我想实现在请求列表时循环遍历列表的能力(以便另一个线程可以从列表中添加/删除项目,但调用线程的列表保持不变,以便 foreach 循环不会导致例外)。如果它是按值返回的,那么它将是它自己的列表,而如果它是一个引用,我仍然有修改列表的危险。如有错误请指正,这只是我的理解
【问题讨论】:
-
为什么不设置一个测试场景并在调试器中检查它以找出答案?通过您发布的 5 行代码,我认为您已经完成了 50% 的可行测试设置。
-
你为什么不看看 .net 4.0+ 中的 BlockingCollection 或 ConcurrentBag 日期类型 - 它应该适合你的任务
标签: c#