在以下场景中,“Pool”是按值返回还是按引用返回?
private static List<Item> Pool;
public static List<Item> GetPool()
{
return Pool;
}
我希望实现在请求时循环遍历列表的能力(以便另一个线程可以从列表中添加/删除项目,但调用线程的列表保持不变,以便 foreach 循环不会导致异常)。如果它是按值返回的,那么它将是它自己的列表,而如果它是引用,我仍然面临列表被修改的危险。如果有什么不对的地方请指正,这只是我的理解
所有方法always返回一个值。他们永远无法返回参考。
如果它是按值返回的,那么它将是它自己的列表,而如果它是引用,我仍然面临列表被修改的危险。
那是错误的。返回的值不是列表,而是对列表对象的引用,因为List
是引用类型,因此使用从此方法返回的值的任何代码以及直接访问该字段的任何代码都使用对同一列表的引用的不同副本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)