Pass member to non-static function without ref
<p>I have this construct in a class in a couple setters:</p>

<pre><code>this.RaiseUnselected(this.property);
this.property = value;
this.RaiseSelected(this.property);
</code></pre>

<p>To clean up my class I extracted this into a method like:</p>

<pre><code>    private void SetProperty(IType target, IType value)
    {
        this.RaiseUnselected(target);
        target = value;
        this.RaiseSelected(target);
    }
</code></pre>

<p>This caused a couple unit tests to fail.  As you can probably see the issue is that the <code>target</code> is passed by value and the setting does not get reflected back to the <code>this.property</code> passed as <code>target</code>.</p>

<p>I fixed it by changing the fuction to </p>

<pre><code>private void SetProperty(ref IType target, IType value)
</code></pre>

<p>but I'm not a big fan of using <code>ref</code> if possible.  Any other suggestions?</p>
