3

按代碼分析結果,以下是警告消息,如何解決CA1502代碼分析

CA1502避免過多的複雜性「的方法()」有27重寫的圈複雜度或重構方法來降低複雜性,以25
BusinessServices ReportService.cs 310

什麼是圈複雜度,以及如何解決這個問題?

+2

http://en.wikipedia.org/wiki/Cyclomatic_complexity – ken2k

回答

3

Wikipedia

的源代碼段的圈複雜是通過源代碼的線性獨立的路徑的數目的計數。例如,如果源代碼不包含IF語句或FOR循環等決策點,則複雜度爲1,因爲代碼中只有一條路徑。如果代碼包含一個包含單個條件的IF語句,則代碼中將有兩條路徑:一條路徑將IF語句評估爲TRUE,另一條路徑將IF語句評估爲FALSE。

解決此問題的最簡單方法是將該方法分解爲兩個或更多更小的方法。 Visual Studio的內置重構工具(如Refactor -> Extract Method)可用於將選定部分的代碼提取到另一種方法中。