Используется ли C# yield return за пределами IEnumerables? Например, можно ли его использовать для реализации сопрограмм без использования нескольких потоков?
Первый вопрос: допустимо ли это где-то вне метода IEnumerable? Думаю, нет.
я вижу, я внес изменение в ваш заголовок, чтобы более эффективно сообщить, что
Вы можете поискать в Google C# и сопрограммы, появятся несколько сообщений SO и библиотек. Добавьте "-единство"
@HenkHolterman Разве это не тот же вопрос? Если он действителен вне метода IEnumerable, то его можно использовать вне IEnumerable.
действительный и полезный не всегда одно и то же. Но поскольку это недействительно, вопрос спорный.
@HenkHolterman Да, ты прав. Если вы превратите это в ответ, я могу пометить его как принятый.





Ваш вопрос
Does C#'s yield return have a use outside of IEnumerables
Ответ - нет, вы можете увидеть это в документации yield.
When you use the yield contextual keyword in a statement, you indicate that the method, operator, or get accessor in which it appears is an iterator. Using yield to define an iterator removes the need for an explicit extra class (the class that holds the state for an enumeration, see IEnumerator for an example) when you implement the IEnumerable and IEnumerator pattern for a custom collection type.
Iterator methods and get accessors
The declaration of an iterator must meet the following requirements:
>>>The return type must be IEnumerable, IEnumerable, IEnumerator, or IEnumerator <<<
@JohnB Извините, я не искал способ реализовать сопрограммы. Идея
yield returnтолько что показалась мне возможной для сопрограмм, поэтому я упомянул об этом. Мой настоящий вопрос заключался в том, есть ли уyield returnкакие-либо другие применения, кромеIEnumerable. Должен ли я удалить сопрограммную часть вопроса?