Pik*_*iku 4 c# parameter-passing pass-by-reference
假设我有一个这样的类:
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
}
}
Run Code Online (Sandbox Code Playgroud)
假设"SomeClass"是一个相当大的类,包含非常复杂的方法和成员(例如,List <> s和数组),并且可能存在大量的类,因此不会在程序周围复制大量数据重要.
"AddToList"方法中是否应该包含"ref"?为什么?
这就像试图重新学习C中的指针一样;-)(这可能就是为什么我感到困惑,我试图将它们与指针联系起来.在C中它是"SomeClass*Item"和一个列表" SomeClass*"变量"
Lee*_*Lee 17
由于SomeClass是一个类,因此它会通过引用自动传递给AddToList方法(或者更准确地说,它的引用按值传递),因此不会复制该对象.如果要在AddToList方法中重新分配引用所指向的对象,则只需使用ref关键字,例如Item = new SomeClass();
.