2016-10-18 5 views
-1

以下の(非常に単純化された)コードのregex.Matchがnullを返す可能性はありますか?Regex.Match()がnullを返すことは可能ですか? (C#.Net framework 3.5?)

Regex regex = new Regex(pattern); 
Match m = regex.Match(input); 

私の静的解析ツールは、mのヌルチェックなしで文句を言っていますが、実際には必要ないと思います。ヌルチェックを削除して、コードカバレッジが100%になるようにしてください。

考えられますか?

チャールズ。

+2

'if(m.Success) 'と一致するかどうか確認してください。 –

答えて

1

Documentationがここにあなたの友達です:

戻り値

タイプ:System.Text.RegularExpressions.Match

試合についての情報を含むオブジェクト。

Microsoftは当然これが真実であると仮定できることを意味し、それだけでMatchオブジェクト(ないnull)を返すことを言っています。

ただし、ドキュメントによれば、例外(またはRegexMatchTimeoutException)がスローされる可能性があります。

+1

Framework 3.5では、RegexMatchTimeoutExceptionがスローされません。ありがとう、私は明確化したかった。 – ChopperCharles

+0

v3.5の良い点、@ChopperCharles、申し訳ありません、私はそのタグを逃しました。要するに、ドキュメンテーションが何らかの機能を発揮しているとすれば、それは単体テストの範囲外です(私の意見では)。理論的には、最終的に 'null 'を返す可能性のあるバグがある可能性がありますが、それが起こるのを防ぐために、最後に単体テストが必要です。 – Sam

関連する問題