Why do I need to prefix params with out or ref?
<p>If I'm calling a method that uses a out or ref parameter why do you need to mark the parameters with out or ref when calling the method? i.e.</p>

<pre><code>DateTime.TryParse(myDate, out dateLogged)
</code></pre>

<p>I had thought this was something to reduce ambiguity when operator overloading but if I create two methods like so:</p>

<pre><code>void DoStuff(int x, out int y)
{
    y = x + 1;
}

void DoStuff(int x, ref int y)
{
    y = x + 1;
}
</code></pre>

<p>Then Visual Studio reports "Cannot define overloaded method 'DoStuff' because it differs from another method only on ref and out", so I couldn't do that anyway. </p>

<p><strong>EDIT:</strong> </p>

<p>After a bit more research it seems that I would need to specify out or ref when calling a method if it there were two overloaded methods declared like this:</p>

<pre><code>    void DoStuff(int x, out int y)

    void DoStuff(int x, int y)
</code></pre>
