События и возвращаемые методы - C#
Формулировка задачи:
Уважаемые коллеги!
Ситуация в следующем:
есть необходимость открывать xml, xls, xlsx файлы и записывать их содержимое в List<>
преобразование делаю в отдельном классе Class_2
из основного класса Class_1 передаю путь к файлу, так же хочу подписаться на событий в Class_2 на счётчик обработанных строк из заданного файла
подписываюсь на событие в Class_2, событие изменение счётчика обработанных строк загруженного файла.
Так вот событие есть в методе
Class_1
{
.......
Class_2 cl_2=new Class_2();
cl_2.ConvertFile(path);
.......
}
Class_2
{
.......
ConvertFile(string path)
{
switch (Path.GetExtension(path))
{
case ".XLS":
return xls_pars(path);
case ".XML":
return xml_pars(path);
case ".XLSX":
return xlsx_pars(path);
default:
break;
}
}
xls_pars(string path)
{
.......
}
}ConvertFile()
, а после прохождения switch---case событие в методеxls_pars()
становитсяNULL
что я делаю не так? почему такая схема - я хотел, как в книжках пишут, обработку файла в отдельный класс поместить с входным параметром "путь к выбранному файлу
", а на выходе из класса массивLIST<DataArray>
Заранее спасибо!Решение задачи: «События и возвращаемые методы»
textual
Листинг программы
public partial class Form1 : Form
{
ConvertSelectetdFile csf = new ConvertSelectetdFile();
List<DataArray> workList_2 = new List<DataArray>();
private void button1_Click(object sender, EventArgs e)
{
workList_2.Clear();
worklist_2.AddRange(csf.convertSelectetdFile(path);
}
}
class ConvertSelectetdFile
{
private delegate List<DataArray> ConvertFile(string path);
public ConvertSelectetdFile()
{
_dictionary = new Dictionary<string, ConvertFile>
{
{".xls", pars_xls },
{".xlsx", pars_xlsx },
{".xml", pars_xml },
};
}
public List<DataArray> convertSelectetdFile(string file)
{
return _dictionary[Path.GetExtension(file)] (file);
}
}