コード例 #1
0
ファイル: Program.cs プロジェクト: simple555a/DotNetAppDev
 static void PrintCollection(IMyEnumerator <object> coll, int count)
 {
     for (int i = 0; i < count; i++)
     {
         Console.WriteLine(coll.GetItem(i));
     }
 }
コード例 #2
0
        static void Main(string[] args)
        {
            //使用接口IMyEnumerable代替MyList
            IMyEnumerable list = new MyList();
            //得到迭代器,在循环中针对迭代器编码,而不是集合MyList
            IMyEnumerator enumerator = list.GetEnumerator();

            for (int i = 0; i < list.Count; i++)
            {
                object current = enumerator.Current;
                enumerator.MoveNext();
            }
            while (enumerator.MoveNext())
            {
                object current = enumerator.Current;
            }

            //ICollection<object> list = new List<object>();
            //IEnumerator enumerator = list.GetEnumerator();
            //for (int i = 0; i < list.Count; i++)
            //{
            //    object current = enumerator.Current;
            //    enumerator.MoveNext();
            //}
            //while (enumerator.MoveNext())
            //{
            //    object current = enumerator.Current;
            //}
        }
コード例 #3
0
 public IMyEnumerator GetEnumerator()
 {
     if (myEnumerator == null)
     {
         myEnumerator = new MyEnumerator(this);
     }
     return(myEnumerator);
 }
コード例 #4
0
ファイル: GridObject.cs プロジェクト: gg12123/Snake
 private bool OverlappedWithAny(IMyEnumerator <GridSquare> squares)
 {
     for (var square = squares.First(); square != null; square = squares.Next())
     {
         if (square.Rect.IsOverlappingWith(Rect))
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #5
0
    static void Main(string[] args)
    {
        var seq = new FibonacciSequence(7);
        IMyEnumerator <int> iter = seq;

        while (iter.MoveNext())
        {
            Console.Write(iter.Current + " ");
        }
        iter.Reset();
        Console.ReadLine();
    }
コード例 #6
0
ファイル: Program.cs プロジェクト: simple555a/DotNetAppDev
        static void Main()
        {
            var strings = new MyCollection <string>();

            strings.AddItem("One");
            strings.AddItem("Two");
            IMyEnumerator <string> collStrings = strings;
            IMyEnumerator <object> collObjects = collStrings; // Ковариантность в действии

            PrintCollection(collObjects, 2);

            Console.ReadKey();
        }