C # size dönüş türü ile yöntemlerini inşa edebilir IEnumerable<T>ve kullanım yield returnve yield breakakışını kontrol etmek. Her iki denetimi de kullanan basit bir örnek:
public IEnumerable<int> GetEvens(int start, int end) {
if(end < start)
yield break;
if(start & 2 != 0)
start++;
for(int i = start; i <= end; i+=2) {
yield return i;
}
}
Benim sorum, neden başlangıçta iki anahtar kelime yieldkullanmak ve tek yield"dönüş değeri veren" ile aşağıdaki gibi kullanmak için tasarlandı :
public IEnumerable<int> GetEvens(int start, int end) {
if(end < start)
return; // stop completely and return nothing
if(start & 2 != 0)
start++;
for(int i = start; i <= end; i+=2) {
yield i; // yield the current value.
}
}
Benim için bu okumak ve anlamak daha basit.
yield x;zamanlar sözdizimi hatası da olmaz mıydı ?