2016-10-18 3 views
-1

Возможно ли, что regex.Match в (намного упрощенном) коде ниже может вернуть null?Возможно ли Regex.Match() вернуть значение null? (C# .Net framework 3.5?)

Мой статический аналитический инструмент жалуется без проверки нуля на m, но я думаю, что на самом деле это не нужно. Было бы неплохо удалить нулевую проверку, чтобы мой охват кода составлял 100% для метода, в котором он содержится.

Мысли?

Charles.

+2

Вы должны проверить, было ли совпадение с 'if (m.Success)' –

ответ

1

Documentation ваш друг здесь:

Возвращаемое значение

Тип: System.Text.RegularExpressions.Match

Объект, который содержит информацию о матче.

Microsoft говорит вам, что он будет возвращать только Match объект (не null), что означает, что вы можете с полным правом считать, что это правда.

В соответствии с документами существует вероятность того, что он выдает исключение (ArgumentNullException или RegexMatchTimeoutException).

+1

В Framework 3.5 он не будет вызывать исключение RegexMatchTimeoutException. Спасибо, я хотел уточнить. – ChopperCharles

+0

Хорошая точка на v3.5, @ChopperCharles, извините, я пропустил этот тег. Итог, если в документации говорится, что что-то функционирует определенным образом, то это выходит за рамки ваших модульных тестов (на мой взгляд). Теоретически существует вероятность того, что на их конце появится ошибка, которая может вернуть «нуль» ... но на завершающей стадии должны быть единичные тесты, чтобы это не происходило. – Sam

Смежные вопросы