События и возвращаемые методы - C#

Узнай цену своей работы

Формулировка задачи:

Уважаемые коллеги! Ситуация в следующем: есть необходимость открывать xml, xls, xlsx файлы и записывать их содержимое в List<> преобразование делаю в отдельном классе Class_2 из основного класса Class_1 передаю путь к файлу, так же хочу подписаться на событий в Class_2 на счётчик обработанных строк из заданного файла
Листинг программы
  1. Class_1
  2. {
  3. .......
  4. Class_2 cl_2=new Class_2();
  5. cl_2.ConvertFile(path);
  6. .......
  7. }
  8. Class_2
  9. {
  10. .......
  11. ConvertFile(string path)
  12. {
  13. switch (Path.GetExtension(path))
  14. {
  15. case ".XLS":
  16. return xls_pars(path);
  17. case ".XML":
  18. return xml_pars(path);
  19. case ".XLSX":
  20. return xlsx_pars(path);
  21. default:
  22. break;
  23. }
  24. }
  25. xls_pars(string path)
  26. {
  27. .......
  28. }
  29. }
подписываюсь на событие в Class_2, событие изменение счётчика обработанных строк загруженного файла. Так вот событие есть в методе

ConvertFile()

, а после прохождения switch---case событие в методе

xls_pars()

становится

NULL

что я делаю не так? почему такая схема - я хотел, как в книжках пишут, обработку файла в отдельный класс поместить с входным параметром "

путь к выбранному файлу

", а на выходе из класса массив

LIST<DataArray>

Заранее спасибо!

Решение задачи: «События и возвращаемые методы»

textual
Листинг программы
  1. public partial class Form1 : Form
  2.     {
  3.                                
  4.                 ConvertSelectetdFile csf = new ConvertSelectetdFile();
  5.             List<DataArray> workList_2 = new List<DataArray>();
  6.  
  7.  
  8. private void button1_Click(object sender, EventArgs e)
  9.                {
  10.                     workList_2.Clear();
  11.             worklist_2.AddRange(csf.convertSelectetdFile(path);
  12.            }
  13.  
  14.     }
  15.  
  16.  
  17.  
  18. class ConvertSelectetdFile
  19.     {
  20.  
  21.         private delegate List<DataArray> ConvertFile(string path);
  22.  
  23.         public ConvertSelectetdFile()
  24.                 {
  25.                     _dictionary = new Dictionary<string, ConvertFile>
  26.                     {
  27.                         {".xls", pars_xls },
  28.                         {".xlsx",  pars_xlsx },
  29.                         {".xml", pars_xml },
  30.                     };
  31.                 }
  32.  
  33.         public List<DataArray> convertSelectetdFile(string file)
  34.                 {
  35.                     return _dictionary[Path.GetExtension(file)] (file);
  36.                 }
  37.  
  38. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы