Some help understanding “yield”

前端 未结 8 1167
挽巷
挽巷 2020-11-30 01:41

In my everlasting quest to suck less I\'m trying to understand the \"yield\" statement, but I keep encountering the same error.

The body of [someMetho

8条回答
  •  抹茶落季
    2020-11-30 02:17

    List implements Ienumerable.

    Here's an example that might shed some light on what you are trying to learn. I wrote this about 6 months

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace YieldReturnTest
    {
        public class PrimeFinder
        {
            private Boolean isPrime(int integer)
            {
                if (0 == integer)
                    return false;
    
                if (3 > integer)
                    return true;
    
                for (int i = 2; i < integer; i++)
                {
                    if (0 == integer % i)
                        return false;
                }
                return true;
            }
    
            public IEnumerable FindPrimes()
            {
                int i;
    
                for (i = 1; i < 2147483647; i++)
                {
                    if (isPrime(i))
                    {
                        yield return i;
                    }
                }
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                PrimeFinder primes = new PrimeFinder();
    
                foreach (int i in primes.FindPrimes())
                {
                    Console.WriteLine(i);
                    Console.ReadLine();
                }
    
                Console.ReadLine();
                Console.ReadLine();
            }
        }
    }
    

提交回复
热议问题