Если у меня есть два yield return
метода с одинаковой сигнатурой, компилятор, похоже, не распознает их как похожие.
У меня есть два метода yield return
, подобных этому:
public static IEnumerable OddNumbers(int N)
{
for (int i = 0; i < N; i++)
if (i % 2 == 1) yield return i;
}
public static IEnumerable EvenNumbers(int N)
{
for (int i = 0; i < N; i++)
if (i % 2 == 0) yield return i;
}
С этим я ожидаю, что следующий оператор будет нормально компилироваться:
Func
Я получаю сообщение об ошибке
Тип условного выражения не может быть определен из-за наличия нет неявного преобразования между 'группой методов' и 'группой методов'
Однако явное приведение работает:
Func
Я что-то упустил или это ошибка компилятора C # (я использую VS2010SP1)?
Примечание: я прочитал this и все еще считаю, что первый
РЕДАКТИРОВАТЬ: Убрано использование var
в фрагментах кода, поскольку я не собирался спрашивать об этом.