Функция .NET dataRow.IsNull () имеет 4 версии. В Visual Basic (VB) синтаксис выглядит следующим образом:
DataRow.IsNull(column As DataColumn)
DataRow.IsNull(columnIndex As Integer)
DataRow.IsNull(columnName As String)
DataRow.IsNull(column As DataColumn, version As DataRowVersion)
В C # используется тот же шаблон синтаксиса:
DataRow.IsNull(DataColumn)
DataRow.IsNull(Int32)
DataRow.IsNull(String)
DataRow.IsNull(DataColumn, DataRowVersion)
На первый взгляд это выглядит довольно странно: почемуРазве эти два определения не включены в спецификацию (если отметить только версию VB, то C # будут следовать аналогичной схеме)?
DataRow.IsNull(columnIndex As Integer, version As DataRowVersion)
DataRow.IsNull(columnName As String, version As DataRowVersion)
Вот несколько моих мыслей:
Может быть столбцаIndex или coloumnName иногда может быть недостаточно, чтобы указать на столбец, который мы хотим проверить на нулевое значение, нотолько когда указана версия?
Тривиально, кажется, я мог бы определить эти отсутствующие функции в несколько строк в терминах определения функции 4 th в первом кодовом блоке выше. Например, для первого случая для VB:
Function IsNull(columnIndex As Integer, version As DataRowVersion) As Boolean
Dim dt As DataTable = Table() //dataRow.Table()
Dim dc As DataColumn = dt.Columns(columnIndex)
Return IsNull(dc, version)
Параметр DataRowVersion
делает это проблематичным?