This is strange, I looked it up and by default C# should pass parameters by value but I've always had them get passed by pointer.
ie
public class foo
{
public foo()
{
derp = 123456;
}
public int derp;
}
public static void dontcare(foo z)
{
z.derp = 123;
}
static void Main(string[] args)
{
foo f = new foo();
dontcare(f);
Console.WriteLine(f.derp);
Console.ReadLine();
}
This prints out the value 123 instead of 123456.