Почему нельзя использовать «доход» и «доход» в одном и том же методе?

Почему мы не можем использовать return и yield return в одном и том же методе?

Например, у нас могут быть GetIntegers1 и GetIntegers2 ниже, но не GetIntegers3.

public IEnumerable<int> GetIntegers1()
{
  return new[] { 4, 5, 6 };
}

public IEnumerable<int> GetIntegers2()
{
  yield return 1;
  yield return 2;
  yield return 3;
}

public IEnumerable<int> GetIntegers3()
{
  if ( someCondition )
  {
    return new[] {4, 5, 6}; // compiler error
  }
  else
  {
    yield return 1;
    yield return 2;
    yield return 3;
  }
}
21
задан Setyo N 9 March 2012 в 09:07
поделиться