In C# when using the ref keyword it causes an argument to be passed by reference, not by value.
In order to use a ref as a parameter, both the method definition and the calling method must explicitly use the ref keyword, and also the variable must be initialized before passing in.

In the example below we have two methods, one using the ref keyword the other not.

But what about objects that are reference types. Here is where the confusion starts that the concept of passing by reference with the concept of reference types, the concepts are not the same. A method parameter can pass in a ref type regardless of its type (value or reference).

Below is an example that shows when a Person object reference type is used.

Last but not least I personally do not recommend using ref keyword and also from
The Framework Design Guidelines it also recommend to avoid using ref.

Framework Design Guideline