Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Обобщение ( Класс и интерфейс )


Автор: Real 8.4.2008, 21:11
6.    Реализовать обобщенный класс «массив», который имеет метод для сортировки массива. Тип элементов массива – параметр, должен быть потомком интерфейса IComparable<T>.

Код

using System;


namespace ConsoleApplication8
{
    class Massiv:IComparable
    {
        int array;
        public Massiv(int _array)
        {
            array = _array;
        }
     

      
        int IComparable.CompareTo(object rightobj)
        {
            if(!(rightobj is Massiv))
                throw new ArgumentException("+++++");
            Massiv objMassiv=(Massiv)rightobj;
            return CompareTo(objMassiv);
        }
        public int CompareTo(Massiv rightobj)
        {
            return array.CompareTo(rightobj.array);
        }
            
        public static explicit operator Massiv(int value)
        {
            return new Massiv(value);
        }
        public override string ToString()
        {
            return array.ToString();
        }

        

        
    }
    class Program
    {
        static void Main(string[] args)
        {
            Massiv[] massiv = new Massiv[10];
            Random ramdom = new Random();
            for (int i = 0; i < 10; i++)
            {
                massiv[i] = (Massiv)ramdom.Next(100);
            }
            for (int i = 0; i < 10; i++)
            {
                Console.Write(massiv[i] + " ");
            }

            Console.ReadLine();
            Array.Sort(massiv);
            for (int i = 0; i < 10; i++)
            {
                Console.Write(massiv[i] + " ");
            }
            Console.ReadLine();
   
        }
    }
}

Нада сделать обощоный класс, который наследует обобщеный интерфейс(создать свой интерфейс )?

Автор: Rififi 8.4.2008, 21:43
Real, 
Код

public class Massiv<T> where T : IComparable
{
    ...
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)