Почему мы не можем использовать возврат и доходность возврата в том же методе?Почему нельзя использовать «возврат» и «возврат дохода» в том же методе?
Например, у нас могут быть 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;
}
}
Подождите секунду, jon skeet придет сейчас. – Juvanis
Я добавлю, что если вам это действительно нужно, вы можете создать GetIngegers4, который вызывает GetIntegers1 ИЛИ GetIntegers2 в зависимости от состояния. – xanatos
Это, вероятно, очевидно, но в таких случаях вы всегда можете развернуть свою коллекцию и вернуть доходность: foreach (элемент в новой позиции [] {4,5,6}) return return item; – Foo42