Метод возврата yeild обрабатывается по-разному, будь то компилятор - если вы проверяете скомпилированную сборку с использованием отражателя, то, что здесь происходит, становится немного понятнее:
private static IEnumerable<char> Test()
{
return new <Test>d__0(-2);
}
Wheras TestOk
возвращает строку, Test
вместо этого возвращает класс, который сгенерирует для вас компилятор.То, что вы видите, является строковым представлением этого класса по умолчанию.