예제 #1
0
        // hier mit delegate -> wie in c++ (funktion ubergeben koennen)
        public void VisitAllDelegate(myDelType <T> Work)
        {
            I_Iterator <T> iterator = Iterator();

            while (iterator.HasNext())
            {
                Work(iterator.Next());
            }
        }
예제 #2
0
        public void VisitAllIterator()
        {
            I_Iterator <T> iterator = Iterator();

            while (iterator.HasNext())
            {
                Console.WriteLine(iterator.Next());
            }
        }
예제 #3
0
        // siehe main.cs -> die delegate Methodenschablone void x<T> (T input) ist sehr genersich
        // in c# kann dies durch Action<T> erstzt werden, Resultat ist gleich, man spart sich das Delegate in Main
        public void InventurDelegateAction(Action <Auto> Work)
        {
            I_Iterator <Auto> iterator = autos.Iterator();

            while (iterator.HasNext())
            {
                Work(iterator.Next());
            }
        }
예제 #4
0
        public void VisitAllIterator()
        {
            // hier mit delegate -> wie in c++ (funktion ubergeben koennen)
            I_Iterator <T> iterator = Iterator();

            while (iterator.HasNext())
            {
                Console.WriteLine(iterator.Next());
            }
        }
예제 #5
0
        public void Inventur()
        {
            /* IEnumerator nicht implementiert
             * foreach(Auto a in autos)
             * {
             *  a.ToString();
             * }
             */

            I_Iterator <Auto> iterator = autos.Iterator();

            while (iterator.HasNext())
            {
                Console.WriteLine(iterator.Next().ToString());
            }
        }
예제 #6
0
        // Func (angucken) !! Erwartet 2 Generischte Typen, zweites Argument ist ein "return", eine Art Erweiterung von Action (delegate void Schablone)

        /*
         * public void InventurDelegateFunc(Action<Auto> Work)
         * {
         *  I_Iterator<Auto> iterator = autos.Iterator();
         *
         *  while(iterator.HasNext())
         *  {
         *      Work(iterator.Next());
         *  }
         * }
         */
        public double BerechneFlottenalter()
        {
            double durschnitt = 0;

            /* IEnumerator nicht implementiert
             * foreach(Auto a in autos)
             * {
             *  durschnitt +=a.Baujahr;
             * }
             */

            I_Iterator <Auto> iterator = autos.Iterator();

            while (iterator.HasNext())
            {
                durschnitt += iterator.Next().Baujahr;
            }
            return(durschnitt / autos.Size);
        }