The return type of the members on an Interface Implementation must match exactly the inferface definition?
<p>According to CSharp Language Specification. </p>

<blockquote>
  <p>An interface defines a contract that can be implemented by classes and
  structs. An interface does not provide implementations of the members
  it defines—it merely specifies the members that must be supplied by
  classes or structs that implement the interface.</p>
</blockquote>

<p>So I a have this:</p>

<pre><code>interface ITest
{
    IEnumerable&lt;int&gt; Integers { get; set; }
}
</code></pre>

<p>And what I mean is. "I have a contract with a property as a collection of integers that you can enumerate".</p>

<p>Then I want the following interface Implementation:</p>

<pre><code>class Test : ITest
{
    public List&lt;int&gt; Integers { get; set; }
}
</code></pre>

<p>And I get the following compiler error:</p>

<blockquote>
  <p>'Test' does not implement interface member 'ITest.Integers'.
  'Test.Integers' cannot implement 'ITest.Integers' because it does not
  have the matching return type of
  'System.Collections.Generic.IEnumerable'.</p>
</blockquote>

<p>As long as I can say my Test class implement the ITest contract because the List of int property is in fact an IEnumerable of int.</p>

<p>So way the c# compiler is telling me about the error?</p>
