Правильно ли я пишу? Работа с интерфейсом и двумя классами с аналогичными методами - C#
Формулировка задачи:
Народ подскажите ли правильно я поступаю. У меня в задании по курсовой есть клиенты и обьекты у них есть добавление,удаление,поиск,редактирование и тдп. Я решил сделать интерфейс так как эти методы почти аналогичные
Вот как все в интерфейсе смотрится
а вот как в классе обьект
а вот в классе клиент
Вопрос ли не крыво я делаю. Может не стоит все через интерфейс завязывать) Думаю будет страдать понимаемость что в том методе должно хранится)
Елементарные операции хранить в интерфейсе было написано в задании) Я как начал так и все вышло обобщить и кинуть в интерфейс))
void add(object obj); void delete(object obj); void edit(int index, int indexparam, object info); object view(object obj); object viewall(); object sort(int indexparam,object obj);
public void add(object realty) { realtys.Add((Realty)realty); } public void delete(object index) { realtys.RemoveAt((int)index-1); } public void edit(int index, int indexparam, object info) { int indexrealty = index -1; switch (indexparam) { case 1: realtys[indexrealty].Name = (string)info; break; case 2: realtys[indexrealty].Vartist = (int)info; break; case 3: realtys[indexrealty].Mrozt = (string)info; break; }
public void add(object client) { clients.Add((Client)client); } public void delete(object npassport) { clients.Remove(clients.Find(x => x.Npassport == (int)npassport)); } public void edit(int npassport, int indexparam , object info) { int indexclient = clients.FindIndex(x => x.Npassport == (int)npassport); switch (indexparam) { case 1: clients[indexclient].Name = (string)info; break; case 2: clients[indexclient].Surname = (string)info; break; case 3: clients[indexclient].Npassport = (int)info; break; case 4: clients[indexclient].Adres = (string)info; break; case 5: clients[indexclient].Telefon = (int)info; break; case 6: clients[indexclient].Nombank = (int)info; break; case 7: clients[indexclient].Tipneruh = (string)info; break; case 8: clients[indexclient].Vcena = (int)info; break; } }
Решение задачи: «Правильно ли я пишу? Работа с интерфейсом и двумя классами с аналогичными методами»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { } } interface Manipulation<T> { void Add(T arg); void Delete(T arg); T view(T arg); } class ObjectManipulation<T> : Manipulation<T> where T : class { List<T> list = new List<T>(); public void Add(T arg) { list.Add(arg); } public void Delete(T arg) { } public T view(T arg) { } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д