验证数据时减少圈复杂度的最佳方法是什么?

rjz*_*zii 7 cyclomatic-complexity code-metrics data-processing

现在我正在开发一个Web应用程序,它从一个有可能返回null结果的数据库中接收大量数据.当经历应用程序的圈复杂度时,许多函数的权重在10-30之间.大多数具有高数字的函数有很多类似于以下的行:

If Not oraData.IsDBNull(4) Then row("Field") = oraData.GetString(4)
Run Code Online (Sandbox Code Playgroud)

这引出了我的问题,试图降低这些数字的最佳方法是什么?现在我正在考虑将大部分功能都放在10以下.

Jor*_*ira 2

使用扩展方法怎么样?

Imports System.Runtime.CompilerServices

Module Extensions

    <Extension()> _
    Public Function TryGetString(ByVal row As IDataRecord, i As Integer) As String
        If row.IsDBNull(i) Then
            Return null
        End If
        Return row.GetString(i);
    End Function

End Module
Run Code Online (Sandbox Code Playgroud)

然后你可以简单地写:

row("Field") = oraData.TryGetString(4)
Run Code Online (Sandbox Code Playgroud)

这可以流畅地读取并降低函数的圈复杂度。