As we all know, C# classes object are treated as references, so what happens when you pass a reference object as a reference to a method? Say we have:
public cla
ref just creates a reference to the original value. With reference types that "value" is the location of variable's memory. When you use ref the method can now change what the original variable reference. If you then do the same with a argument that is already ref the 2nd method simply has the same reference that the first method did.