title: yield return does not work in callee method
body: <p>I'm new in C# and here is my code:</p>
  
  <pre><code>class Program {
      public static IEnumerable&lt;string&gt; enum2() {
          yield return "A";
          yield return "B";
      }
  
      public static IEnumerable&lt;string&gt; enum1() {
          enum2();
          yield return "C";
          enum2();
          yield return "C";
      }
  
      static void Main(string[] args) {
          foreach (string s in enum1()) {
              Console.WriteLine(s);
          }
          Console.ReadLine();
      }
  }
  </code></pre>
  
  <p>Expected:</p>
  
  <pre><code>A
  B
  C
  A
  B
  C
  </code></pre>
  
  <p>But Got:</p>
  
  <pre><code>C
  C
  </code></pre>
  
  <p>The call trace is <code>Main -&gt; enum1() -&gt; enum2()</code> but why <code>yield return</code> does not work in <code>enum2()</code> ?</p>