Если ваш метод называется ParseTable, и он не может выполнить "Parse" a "Table", то он должен вызвать исключение. Преимущество этого заключается в том, что исключение может дать вызывающей стороне информацию о том, почему он не может выполнить синтаксический анализ (HTML был недействительным, неожиданный столбец и т. Д.). Проблема с возвратом нулевого значения состоит в том, что неожиданное исключение нулевой ссылки почти никогда не сообщает вам причину проблемы.
"Правильный" способ создать метод, который пытается разобрать таблицу, но, к счастью, ничего не делает, если не может быть найден результат:
public bool TryParseTable(HtmlNode table, out DataTable result){
// your code...
if(success)
{
result = //the table you parsed
return true;
}
else
{
result = null;
return false;
}
}
Хорошо, так что «result» может быть нулевым после вызова этого метода, но, по крайней мере, вызывающая сторона более склонна использовать оператор if
благодаря типу возвращаемого значения и имени метода.