gpt4 book ai didi

c# - 在 C# 中是否通过引用传递对象

转载 作者:太空狗 更新时间:2023-10-29 23:57:49 24 4
gpt4 key购买 nike

假设我有这样一个类:

public class ThingManager {
List<SomeClass> ItemList;

public void AddToList (SomeClass Item)
{
ItemList.Add(Item);
}

public void ProcessListItems()
{
// go through list one item at a time, get item from list,
// modify item according to class' purpose
}
}

假设“SomeClass”是一个相当大的类,包含非常复杂的方法和成员(例如,List<>s 和数组)并且可能有大量的方法和成员,所以不要复制大量的数据程序很重要。

“AddToList”方法是否应该包含“ref”?为什么?

这就像尝试重新学习 C 中的指针 ;-)(这可能是我感到困惑的原因,我试图将它们与指针相关联。在 C 中它是“SomeClass *Item”和“SomeClass *”变量列表)

最佳答案

既然 SomeClass 是一个类,那么它会自动通过引用传递给 AddToList 方法(或者更准确地说,它的引用是通过值传递的)所以对象不会被复制。如果要在 AddToList 方法中重新分配引用指向的对象,则只需要使用 ref 关键字,例如Item = new SomeClass();

关于c# - 在 C# 中是否通过引用传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2838157/

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