Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод элемента list типа класса 
:(
    Опции темы
mastermedia
Дата 1.1.2012, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 31.10.2010

Репутация: нет
Всего: нет



Список pbook имеет тип Person и хранит список абонентов. Я вывожу с помощью метода Show класса Phonebook, но мне выводит ссылку Phonebook.Person. Как правильно вывести список абонентов в телефонном справочнике?
Класс Phonebook:
Код

class Phonebook
    {
        private List<Person> pbook = new List<Person>();

        public Phonebook()
        {
        }

        public void addPerson(Person p)
        {
            pbook.Add(p);
        }

        public void Show()
        {
            foreach (var person in pbook)
            {
                Console.WriteLine(person);
            }
        }

        public void Menu()
        {
            int control = 0;
            while (control != 3)
            {
                Console.WriteLine("Сделайте выбор: 1 - добавить абонента, 2 - вывести абонента, 3 - выход.");
                control = Convert.ToInt32(Console.ReadLine());

                switch (control)
                {
                    case 1:
                        Person p = new Person();
                        Console.WriteLine("Введите фио:");
                        p.AddName(Console.ReadLine());
                        Console.WriteLine("Введите телефон:");
                        p.AddPhone(Console.ReadLine());
                        Console.WriteLine("Введите адрес:");
                        p.AddAddress(Console.ReadLine());
                        addPerson(p);
                        break;
                    case 2:
                        Show();
                        break;
                    case 3:
                        Environment.Exit(0);
                        break;
                    default:
                        break;
                }
            }
        }
 }   


Класс Person:
Код

class Person
    {
        private string Name;
        private string Phone;
        private string Address;
        
        public Person()
        {          
        }

        public void AddName(string n)
        {
            Name = n;
        }

        public void AddPhone(string p)
        {
            Phone = p;
        }

        public void AddAddress(string a)
        {
            Address = a;
        }

        public void ShowPerson()
        {
            Console.WriteLine("ФИО: {0}, номер: {1}, адрес: {0}", Name, Phone, Address);
        }
    }

PM MAIL   Вверх
Экскалупатор
Дата 2.1.2012, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



Код

public void Show()
        {
            foreach (var person in pbook)
            {
                person.ShowPerson();
            }
        }


надо бы наверное вызвать метод который вернет то что тебе нужно? если хочется по красивому то прочитай про класс object, и о том какие методы у него есть, все классы наследуют от этого класса и если переопределить его метод ToString(), то будет работать так как тебе хочется...

Это сообщение отредактировал(а) Экскалупатор - 2.1.2012, 12:00
PM MAIL ICQ   Вверх
mastermedia
Дата 2.1.2012, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 31.10.2010

Репутация: нет
Всего: нет



как я понял, класс будет конвертироваться в строку?
PM MAIL   Вверх
Экскалупатор
Дата 2.1.2012, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



с чего вдруг? что бы он "конвертировался в строку" его нужно сериализовать. а в твоем случае нужно просто вызвать метод который вернет строку. по умолчанию для объекта вызывается метод toString, если ты явно не укажешь другой, а так как в твоем случае метод ToString есть только у object, то и вызывается та реализация.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.