Как сделать перегрузку метода ToString() - C#
Формулировка задачи:
Помогите сделать перегрузку метода ToString(), еще чтобы были готовые 3 пациента при запуске, и после занесения данных они не записываются а программа чего то ждет стоит, заранее спасибо!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OOP
{
class Hospital
{
class patient
{
string name; //имя
string lastname; //фамилия
string patronumic; // отчество
Adress adress;//адресс
Disease[] history;
bool isStay;
public patient(string _name, string _lastname, string _patronumic, Adress _adress) //конструктёр пациента
{
/* заносим данные в карточку*/
name = _name;
lastname = _lastname;
patronumic = _patronumic;
adress = _adress;
isStay = true;
history = new Disease[100]; // массив истории болезни пациента
}
public Adress Adress // св-во Адрес
{
get { return adress; } //только чтение
}
public string FIO //фио
{
get { return lastname + " " + name + " " + patronumic; } //только чтение
}
public bool IsStay // стоит ли на учете больной
{
// чтение и запись
get { return isStay; } // получение сведений об учете больного
set { isStay = value; } //измемнение состояния учета
}
public void Visit(DateTime date, string diagnose) // обращение пациента в поликлиннику
{
Disease disease = new Disease(date, diagnose); // регистрируем болезнь
history.SetValue(disease, history.Count()); // заносим в карточку
}
}
string name; //наименование поликлинники
static List<patient> my = new List<patient>();
internal struct Adress
{
private string street; //улица
private string city; // город
private byte house; // номер дома
private byte flat; //# кваритры
public Adress(string _street, string _city, byte _house, byte _flat)//конструктор структуры адреса
{
street = _street;
city = _city;
house = _house;
flat = _flat;
}
}
private struct Disease
{
DateTime time;
string diagnose;
public Disease(DateTime _time, string _diagnose)
{
time = _time;
diagnose = _diagnose;
}
}
public void Hospital1() // конструктор больницы
{
name = "Поликлинника №1"; // задаем имя поликлинники
}
static void AddPatient(string name, string lastname, string patronymic, Adress adress) // регистрация пациента в больнице
{
patient Patient = new patient(name, lastname, patronymic, adress); // создаем карточку нового больного
my.Add(Patient);// ложим ее в архив
}
public void SetStay(int ID, bool isStay) // снятие/постановка больного на учет в больницу
{
if ((ID < 0) || (ID > my.Count())) // если нет такого пациента, то ничего не делаем
return;
my[ID].IsStay = isStay; // снятие/постановка
}
static void Visit(int ID, DateTime date, string diagnose) // обращение пациента в больницу
{
if ((ID < 0) || (ID > my.Count())) // если нет такого пациента, то ничего не делаем
return;
my[ID].Visit(date, diagnose);
}
public static void Main()
{
char a;
{
System.Console.Clear();
System.Console.WriteLine("\tБольница \n");
System.Console.WriteLine("1. Добавить пациента");
System.Console.WriteLine("2. Вывести список пациентов");
System.Console.WriteLine("3. Удалить Пациента");
System.Console.WriteLine("4. Обращение пациента");
System.Console.WriteLine("5. постановка/снятие пациента с учета");
System.Console.WriteLine("\n0. выход");
a = System.Console.ReadKey().KeyChar;
switch (a)
{
case '1':
{
System.Console.Clear();
System.Console.WriteLine("Введите имя: ");
string name = Console.ReadLine();
System.Console.WriteLine("Введите фамилию: ");
string lastname = Console.ReadLine();
System.Console.WriteLine("Введите отчество: ");
string patronymic = Console.ReadLine();
System.Console.WriteLine("Введите адрес: \n");
System.Console.WriteLine("город: ");
string _city = Console.ReadLine();
System.Console.WriteLine("Улица: ");
string _street = Console.ReadLine();
System.Console.WriteLine("Дом: ");
byte _house = byte.Parse(Console.ReadLine());
System.Console.WriteLine("Квартира: ");
byte _flat = byte.Parse(Console.ReadLine());
Adress adress = new Adress(_street, _city, _house, _flat);
AddPatient(name, lastname, patronymic, adress);
break;
}
case '2':
{
for (int i = 0; i < my.Count; i++)
{
System.Console.Clear();
System.Console.WriteLine("ID: " + i);
System.Console.WriteLine("FIO: " + my[i].FIO);
System.Console.WriteLine("Учет: " + my[i].IsStay);
}
System.Console.ReadKey();
break;
}
case '3':
{
System.Console.Clear();
System.Console.WriteLine("Напишите номер записи которую хотите удалить: ");
int i = int.Parse(System.Console.ReadLine());
my.RemoveAt(i);
}
break;
case '4':
{
System.Console.Clear();
System.Console.WriteLine("Введите номер пациента: ");
int i = int.Parse(System.Console.ReadLine());
System.Console.WriteLine("Введите диагноз: ");
string s = System.Console.ReadLine();
Visit(i, DateTime.Today, s);
}
break;
case '5':
{
System.Console.Clear();
System.Console.WriteLine("Введите номер пациента: ");
int i = int.Parse(System.Console.ReadLine());
my[i].IsStay = !my[i].IsStay;
}
break;
}
} while (a != '0') ;
}
}
}Решение задачи: «Как сделать перегрузку метода ToString()»
textual
Листинг программы
public override string ToString()
{
return string.Format("Street: {0}, City: {1}, House: {2}, Flat: {3}", street, city, house, flat);
}