Почему этот код:
public IEnumerator Test()
{
}
Выдает вам ошибку:
Ошибка CS0161 «Test.GetEnumerator()»: не все пути кода возвращают значение
Однако этот код:
public IEnumerator Test()
{
if(false)
yield return 0;
}
Нет? (и работает как положено; первый MoveNext() возвращает false)
При использовании IEnumerators в качестве сопрограмм иногда вы хотите создать сопрограмму (IEnumerator), которая еще не имеет асинхронных операций (ничего не дает), но может сделать это в будущем.
yield break;
вместо фиктивного оператора if. - person Mike Zboray   schedule 15.02.2017