title: Coding style "ref" for List<T> or Collections
body: <p>I have function that changes argument of List type (changes inner object state). For example:</p>
  
  <pre><code>    public void ChangeList&lt;T&gt;(List&lt;T&gt; source, T value)
      {
          //Actions
          source.Add(value);
          //Actions
      }
  </code></pre>
  
  <p>What is the function signature is better? And why?</p>
  
  <p>First: <code>public void ChangeList&lt;T&gt;(List&lt;T&gt; source, T value)</code></p>
  
  <p>or</p>
  
  <p>Second: <code>public void ChangeList&lt;T&gt;(ref List&lt;T&gt; source, T value)</code></p>
  
  <p><strong>Edit:</strong> The question can be changed. How to explicitly specify that the function changes the state of the list? (except function name or ReadonlyCollection)</p>