Should I use ref when modifying the content of an object passed as a parameter
<p>Suppose we have a function <code>MutateX</code> which will mutate a mutable object <code>x</code> <em>(in my case a byte[])</em>, which unsurprisingly changes <code>x</code>'s state. I can define <code>MutateX</code> in two ways</p>

<pre><code>void MutateX (ref Object x);  // (A)
// or
void MutateX (Object x);      // (B)
</code></pre>

<p>X being a reference value anyway - either will work although.</p>

<p>To me <code>ref</code> indicates that the function is going to change <code>x</code> in some way (whether or not it changes the actual reference value to some other Object). Is there one form preferred over the other?</p>

<p><em>I notice that in SerialPort.Read is implemented without</em></p>
