title: Conversion of IEnumerable<T> to IList
body: <p>If a method takes a parameter of type System.Collections.IList can I legitimately/safely pass a value of type <code>System.Collections.Generic.IEnumerable&lt;T&gt;</code>? </p>
  
  <p>I would appreciate a thorough explanation of why this is possible and what actually happens to the object <code>T</code> when the <code>IEnumerable&lt;T&gt;</code> is used inside of the method. </p>
  
  <p>Is it converted to the base type of Object? </p>
  
  <p>Is it used as an <code>System.Collections.IEnumerable</code>?</p>
  
  <p>Are there any scenarios where this will cause problems (i.e. performance issues)?</p>
  
  <p>Thanks in advance,
  John</p>