• Как вернуть из функции ответ return разного типа?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Если генерируете некий List, то при не критической ошибке (файл пуст), стоит возвращать пустой List. Если ошибка критическая (файл не найден, невозможно открыть файл на чтение, невалидный аргумент, нулевой аргумент), то нужно бросать исключение.

    private static List<SomeType> ReadFromFile(string path) {
        if (path == null) {
            throw new ArgumentNullException("path");
        }
        if (File.Exists(path)) {
            string file = File.ReadAllText(path);
            ...
        } else {
            throw new FileNotFoundException(path);
        }
    }


    Тогда в вызывающем коде можно делать проверки:

    private void  doTheBestBtn_Click(object sender, EventArgs e)
    {
        try {
            var myList = ReadFromFile(txtInput.Text);
            ...
        }
        catch(ArgumentNullException ex) {
            MessageBox.Show("Необходимо указать путь к файлу!");
        }
        catch(FileNotFoundException ex) {
            MessageBox.Show("Указанный файл не найден!");
        }
    }


    PS File.ReadAllText сам бросает некоторые исключения, но допустим, что это самопальный тип.
    Ответ написан
    Комментировать
  • На чем быстрее парсить?

    Nipheris
    @Nipheris Куратор тега C#
    HtmlAgilityPack либо же использовать Регулярные выражения?

    stackoverflow.com/a/1732454/3927447

    Этим все сказано.
    Ответ написан
    1 комментарий