Passing objects by reference or not in C#

Posted by Piku on Stack Overflow See other posts from Stack Overflow or by Piku
Published on 2010-05-14T22:59:50Z Indexed on 2010/05/14 23:04 UTC
Read the original article Hit count: 270

Suppose I have a class like this:

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
    }
}

Assume "SomeClass" is a fairly large class containing methods and members that are quite complex (List<>s and arrays, for example) and that there may be a large quantity of them, so not copying vast amounts of data around the program is important.

Should the "AddToList" method have "ref" in it or not? And why?

It's like trying to learn pointers in C all over again ;-) (which is probably why I am getting confused, I'm trying to relate these to pointers. In C it'd be "SomeClass *Item" and a list of "SomeClass *" variables)

© Stack Overflow or respective owner

Related posts about c#

Related posts about parameter-passing