Создание списка объектов класса с заранее неизвестным именем (именем самих объектов) - C#
Формулировка задачи:
Уважаемые программисты, не получается решить такую задачу: требуется создать приложение (в консоли) "клиенты банка". Есть два класса 1) клиенты 2) счета. Реализовал создание клиента, +нескольких счетов к нему, а вот как создать список клиентов, который можно будет редактировать, не доходит пока.
код
-------------------------------------------------------------------
-------------------------------------------------------------------------
class Client
{
private string _fio;
private string _age;
private string _company;
//список счетов
List<Check> Checks;
//конструктор 1 (0 вх.параметров)
public Client()
{
_fio = "Null";
_age = "Null";
_company = "Null";
}
//конструктор 2 (3 вх.параметров)
public Client(string fio, string age, string company)
{
_fio = fio;
_age = age;
_company = company;
}
//метод создания клиента
public void EnterDataClient()
{
Console.WriteLine("Введите имя: ");
_fio = Console.ReadLine();
Console.WriteLine("Введите возраст: ");
_age = Console.ReadLine();
Console.WriteLine("Введите компанию, в которой он работает: ");
_company = Console.ReadLine();
}
//метод, который проверяет, есть ли у клиента счета,
//если нет, создает новый список счетов. Добавляет новый счет в список
public void AddChecks(Check NewCheck)
{
if (Checks == null)
Checks = new List<Check>();
Checks.Add(NewCheck);
}
//метод, который удаляет счет клиента по указанному индексу
public void DelChecks(int i)
{
if (Checks != null)
Checks.RemoveAt(i);
else
Console.WriteLine("список счетов для данного клиента пуст");
}
}
}
class Check
{
int _balance;
string _historyBalance;
//базовый конструктор без переменных
public Check()
{
_balance = 0;
_historyBalance = "";
}
//свойство баланс
public int Balance
{
get
{
return _balance;
}
set
{
if (value >= 0)
_balance += value;
else
_balance -= value;
}
}
//cвойство история баланса
public string History
{
get
{
return _historyBalance;
}
set
{
_historyBalance += value;
}
}
//метод, изменяющий баланс, затем вносящий запись в историю баланса
public void ContribMoneyOnBalance(int i)
{
try
{
Balance += i;
History +="Изменение баланса на сумму: "+Convert.ToString(i)+" от "+DateTime.Now+ "\n";
}
catch
{
Console.WriteLine("Ошибка при изменении баланса");
}
Console.WriteLine("Ваш текущий баланс: ");
Console.WriteLine(Convert.ToString(_balance)," руб.");
}
//метод просмотр истории баланса
public void ViewHstoryBalance()
{
Console.WriteLine("История прихода-расхода:");
Console.WriteLine(History);
}
}
class Program
{
static void Main(string[] args)
{
List<Client> CatalogClient = new List<Client>();
string a = "";
Console.WriteLine(@"Выберите вариант:
1. Создать клиента
2. Удалить клиента.
3. Посмотреть всех клиентов.");
try
{
string b = Console.ReadLine();
a = b;
}
catch
{
Console.WriteLine("Вводите только цифру и затем ввод (<Enter>)");
}
switch (a)
{
case "1":
}
Console.ReadKey();
}
}Решение задачи: «Создание списка объектов класса с заранее неизвестным именем (именем самих объектов)»
textual
Листинг программы
class Program
{
static void Main(string[] args)
{
List<Client> CatalogClient = new List<Client>();
Console.WriteLine(@"Выберите вариант:
1. Создать клиента
2. Удалить клиента.
3. Посмотреть всех клиентов.");
string b = Console.ReadLine();
switch (b)
{
case ("1"):
Client client = new Client();
client.EnterDataClient();
CatalogClient.Add(client);
break;
default:
Console.WriteLine("Клиент создан. Вы в меню. Создать второго клиента");
break;
}
switch (b)
{
case ("1"):
Client client = new Client();
client.EnterDataClient();
CatalogClient.Add(client);
break;
}
Console.WriteLine("Клиент создан. Вы в меню. Посмотреть всех клиентов.");
b = "3";
switch (b)
{
case ("3"):
foreach (var client in CatalogClient)
Console.WriteLine("Клиент: {0}, возраст: {1}, компания: {2}", client.FIO,client.AGE,client.COMPANY);
break;
}
Console.ReadKey();
}
}