下面的(很簡單)代碼中的regex.Match是否有可能返回null?Regex.Match()是否可能返回null? (C#.Net framework 3.5?)
Regex regex = new Regex(pattern);
Match m = regex.Match(input);
我的靜態分析工具抱怨m沒有空檢查,但我認爲這並不是必要的。這將是很好的刪除空檢查,所以我的代碼覆蓋範圍是它的方法100%。
想法?
Charles。
下面的(很簡單)代碼中的regex.Match是否有可能返回null?Regex.Match()是否可能返回null? (C#.Net framework 3.5?)
Regex regex = new Regex(pattern);
Match m = regex.Match(input);
我的靜態分析工具抱怨m沒有空檢查,但我認爲這並不是必要的。這將是很好的刪除空檢查,所以我的代碼覆蓋範圍是它的方法100%。
想法?
Charles。
Documentation是你的朋友在這裏:
返回值
類型:System.Text.RegularExpressions.Match
包含有關比賽信息的對象。
微軟告訴你,它只會返回一個Match
對象(不null
),這意味着你可以理所當然地認爲這是真的。
不過,根據文檔,它有機會拋出異常(ArgumentNullException
或RegexMatchTimeoutException
)。
在Framework 3.5中它不會拋出RegexMatchTimeoutException。謝謝,我想澄清。 – ChopperCharles
v3.5的好點,@ChopperCharles,對不起,我錯過了那個標籤。底線,如果文檔說有某種功能有某種功能,那麼這超出了單元測試的範圍(在我看來)。理論上,有一個可能會在他們的末尾有一個可能返回'null'的錯誤...但是,應該在它們的最後部署單元測試來防止這種情況發生。 – Sam
你應該檢查是否與'if(m.Success)'匹配' –