加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#是按引用或值返回的吗?

发布时间:2020-12-15 23:47:58 所属栏目:百科 来源:网络整理
导读:在以下场景中,“Pool”是按值还是按引用返回的? private static ListItem Pool;public static ListItem GetPool(){ return Pool;} 我希望能够在请求时实现循环遍历列表的能力(这样另一个线程可以在列表中添加/删除项目,但调用线程的列表保持不变,以便foreac
在以下场景中,“Pool”是按值还是按引用返回的?

private static List<Item> Pool;

public static List<Item> GetPool()
{
    return Pool;
}

我希望能够在请求时实现循环遍历列表的能力(这样另一个线程可以在列表中添加/删除项目,但调用线程的列表保持不变,以便foreach循环不会导致异常).如果它是按值返回的,那么它将是它自己的列表,而如果它是一个引用,我仍然有被修改列表的危险.如果有任何问题请纠正我,这只是我的理解

解决方法

所有方法总是返回一个值.他们永远不会返回参考.

If it was returned by value then it would be its own list whereas if it was a reference,I’d still be in danger of the list being modified.

那是错误的.返回的值不是列表,而是列表对象的引用,因为List是引用类型,因此使用从此方法返回的值的任何代码和直接访问该字段的任何代码都使用不同的引用副本名单.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读