2016-10-18 48 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%。

想法?

Charles。

+2

你應該檢查是否與'if(m.Success)'匹配' –

回答

1

Documentation是你的朋友在這裏:

返回值

類型:System.Text.RegularExpressions.Match

包含有關比賽信息的對象。

微軟告訴你,它只會返回一個Match對象(不null),這意味着你可以理所當然地認爲這是真的。

不過,根據文檔,它有機會拋出異常(ArgumentNullExceptionRegexMatchTimeoutException)。

+1

在Framework 3.5中它不會拋出RegexMatchTimeoutException。謝謝,我想澄清。 – ChopperCharles

+0

v3.5的好點,@ChopperCharles,對不起,我錯過了那個標籤。底線,如果文檔說有某種功能有某種功能,那麼這超出了單元測試的範圍(在我看來)。理論上,有一個可能會在他們的末尾有一個可能返回'null'的錯誤...但是,應該在它們的最後部署單元測試來防止這種情況發生。 – Sam

相關問題