C#] yield , IEnumerator , IEnumerable

using System;
using System.Text;
using System.Collections.Generic;

namespace MyPractice
{

    public class MyEnumerator
    {
        private int data = { 10, 20, 30, 40, 50 };
        public IEnumerator<int> GetEnumerator() //IEnumerator **GetEnumerator
        {
            // **IEnumerator<T>
            foreach (int k in data)
                yield return k;
        }
    }



    class Program
    {
        static IEnumerable<int> YieldNumber() //IEnumerable
        {
            yield return 10;
            yield return 20;
            yield return 30; 
        }



        static void Main(string
 args)
        {

            /*
             * 2019.04.17
             * by 4ru4ka
             */
            foreach (int ynum in YieldNumber())
                Console.WriteLine(ynum);

            // for use IEnumerator
            var ie = new MyEnumerator();
            foreach (int lnum in ie)
                Console.WriteLine(lnum);
        }
    }
}


/*
 * OUTPUT:
 * 


10
20
30
10
20
30
40
50

 */