Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C#]Класс,наследуемый от интерфейса


Автор: SeRaZ 14.1.2010, 22:07
Всех приветствую!Нужна помощь в решении следующей задачи.
Определить интерфейс,который определяет свойства "группа" и "факультет" класса "Студенческая группа",который использует созданный интерфейс,имеет поля:ФИО,год рождения.Методы класса позволяют добавлять студентов в группу и выводить данные по ним.

Автор: NightmareZ 15.1.2010, 00:02
Класс не наследуется от интерфейса, он реализует интерфейс.

Автор: SeRaZ 15.1.2010, 08:39
Обе формулировки верны.MSDN говорит о "реализации интерфейса",но в литературе часто встречается "наследование классом интерфейса",что вполне логично исходит из определения "интерфейс".Как сдам-приведу конкретные ссылки.А до сдачи осталась пара часов

Автор: mrbrooks 15.1.2010, 10:20
ы. такое ощущения что интерфейс сюда притянут за уши.
пологаю должно быть нечто подобное 
Код

    interface IStGroup
    {
        string group
        {
            get;
            set;
        }
        string faculty
        {
            get;
            set;
        }
    }
    struct StInfo
    {
        public string m_group;
        public string m_faculty;
        public string m_fio;
        public ushort m_year_brith;
    }

    public class StGroup : IStGroup
    {
        ArrayList arr = new ArrayList();
        StInfo info = new StInfo();
        public string fio
        {
            get { return info.m_fio; }
            set { info.m_fio = value; }
        }
        public ushort year_brith
        {
            get { return info.m_year_brith; }
            set { info.m_year_brith = value; }
        }
        public string group
        {
            get { return info.m_group; }
            set { info.m_group = value; }
        }
        public string faculty
        {
            get { return info.m_faculty; }
            set { info.m_faculty = value; }
        }
        public void AddInfo()
        {            
            while (true)
            {
                Console.Write("Введите ФИО: ");
                this.fio = Console.ReadLine();
                Console.Write("Введите дату рождения: ");
                this.year_brith = ushort.Parse(Console.ReadLine());
                Console.Write("Введите группу: ");
                this.group = Console.ReadLine();
                Console.Write("Введите факультет: ");
                this.faculty = Console.ReadLine();
                arr.Add(this.info);
                Console.Write("Продолжить добавлять данные? (y/n) ");
                if (Console.ReadKey().Key == ConsoleKey.N)
                {
                    Console.WriteLine("");
                    break;
                }
                else Console.WriteLine("");
            }
        }

        public void Display()
        {
            if (arr.Count>0)
            {
                foreach (StInfo i in arr)
                    Console.WriteLine("ФИО:{0} Год рождения:{1} Группа:{2} Факультет:{3}",
                                        i.m_fio,i.m_year_brith,i.m_group,i.m_faculty);
            }
            else Console.WriteLine("Информации нет");
        }
    }
}


Автор: SeRaZ 24.1.2010, 18:09
Цитата(mrbrooks @ 15.1.2010,  10:20)
ы. такое ощущения что интерфейс сюда притянут за уши.
пологаю должно быть нечто подобное 
Код

    interface IStGroup
    {
        string group
        {
            get;
            set;
        }
    }
 

Спасибо!Возникла пара вопросов-самое главное куда здесь вставить метод Main()? )
И имеет ли значение,свойства group  и faculty,соответственно, с большой или маленькой буквы?

Автор: mrbrooks 25.1.2010, 08:57
Цитата(SeRaZ @  24.1.2010,  18:09 Найти цитируемый пост)
самое главное куда здесь вставить метод Main()? 

дык определи его в классе аки:
Код

static void Main(string [] args)
{
   //...
}


Цитата(SeRaZ @  24.1.2010,  18:09 Найти цитируемый пост)
И имеет ли значение,свойства group  и faculty,соответственно, с большой или маленькой буквы? 

это же не Дельфи - камрад. Регистр имеет значение.

Автор: mrbrooks 25.1.2010, 09:53
SeRaZ, камрад ты мне весь ящик забил приватными сообщениями  smile 

Делай так и будет все кошерно:
Код

static void Main(string [] args)
{
   StGroup tmp = new StGroup();
   tmp.AddInfo();
   tmp.Display();
}


Автор: SeRaZ 25.1.2010, 14:42
Цитата(mrbrooks @ 25.1.2010,  09:53)
Делай так и будет все кошерно:

Спасибо большое!От души!Сдал! smile 

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