gpt4 book ai didi

c# 通过引用或通过值

转载 作者:太空宇宙 更新时间:2023-11-03 17:18:10 26 4
gpt4 key购买 nike

假设我有一个对象列表,我正在从列表中提取和修改一个项目,如下所示:

List<MyObject> TheListOfObjects = new List<MyObject>();
MyObject TheObject = new MyObject();

TheListOfObjects = //some json deserialization result

TheObject = (from o in TheListOfObject
where o.ID == SomeParameter
select o).SingleOrDefault();

TheObject.SomeProperty = SomeValue;

当我写 TheObject.SomeProperty = SomeValue; 时,我是:

  1. 修改列表中的项目,在这种情况下我完成或
  2. 修改一个新项目,我必须用我刚刚修改的项目替换列表中的原始项目。

最佳答案

视情况而定。

如果对象列表是类实例列表,则 TheObject 变量将保存一个值,该值是一个引用。该引用也将仍然存在于列表中。在该引用处对该对象的修改在两者中都是可见的。重要警告:覆盖变量中包含的引用(即变量重新分配)不会保留到列表中,覆盖列表中的引用也不会保留到变量中。

如果对象列表是结构实例列表,则 TheObject 仅包含,并且该值的变化在列表中不可见。

关于c# 通过引用或通过值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9313584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com