title: out / ref parameter for delegate
body: <p>Delegate:</p>
  
  <pre><code>return delegate( IQueryable&lt;MySearchResultItem&gt; query, Expression&lt;Func&lt;MySearchResultItem, object&gt;&gt; lambda, Wrapper wrapper)
  {
      wrapper.query = query.OrderBy(lambda);
      query = query.OrderBy(lambda);
  };
  </code></pre>
  
  <p>Wrapper class:</p>
  
  <pre><code>public class Wrapper
  {
      public IQueryable&lt;MySearchResultItem&gt; query { get; set; }
  }
  </code></pre>
  
  <p>When I execute this delegate I expected for the query to be changed after this function is over, but it didn't. So i assume that the query passed by value ( instead of by reference )</p>
  
  <p>But when I create a wrapper class for this query, add the query to the wrapper class and pass this along as well. Then after this method is done the query inside the wrapper class has been changed ( so this wrapper class was passed by reference ? )</p>
  
  <p>What's going on here ?</p>