Avoid using ref and out parameters unless absolutely necessary
Do
void DoSomething(int x, out int y) { y = x * 2; }
Don't
void DoSomething(ref int x, out int y) { x = 10; y = 20; }
Do
void DoSomething(int x, out int y) { y = x * 2; }
Don't
void DoSomething(ref int x, out int y) { x = 10; y = 20; }