Esempio n. 1
0
        static void Main(string[] args)
        {
            Console.Title = "Tutorial C# nivel intermedio 6 --- IComparable";

            CRectangulo[] rects = new CRectangulo[5];

            rects[0] = new CRectangulo(7, 5);
            rects[1] = new CRectangulo(6, 4);
            rects[2] = new CRectangulo(4, 3);
            rects[3] = new CRectangulo(7, 6);
            rects[4] = new CRectangulo(5, 7);

            // Imprimimos array original
            foreach (CRectangulo r in rects)
            {
                Console.WriteLine(r);
            }

            Console.WriteLine("-------------------------");

            // Hacemos uso de sort, el cual necesita la implementación de IComparable
            Array.Sort(rects);

            // Imprimimos arreglo ordenado
            foreach (CRectangulo r in rects)
            {
                Console.WriteLine(r);
            }
        }
        // Implementación de IComparable

        int IComparable.CompareTo(object obj)
        {
            // Hacemos type cast con el objeto con el cual nos vamos a comparar
            CRectangulo temp = (CRectangulo)obj;

            // Si somos más grandes que el objeto devolvemos 1
            if (Area > temp.Area)
            {
                return(1);
            }

            // Si somos más pequeños que el objeto devolvemos -1
            if (Area < temp.Area)
            {
                return(-1);
            }

            // Si somos iguales al objeto devuelve 0
            return(0);
        }