There's nothing peculiar with this. You reference variables if you want to return several values from a method or just don't want to reassign the return value to the object you've passed in as an argument.
Like this:
int bar = 4;
foo(ref bar);
instead of:
int bar = 4;
bar = foo(bar);
Or if you want to retrieve several values:
int bar = 0;
string foobar = "";
foo(ref bar, ref foobar);