1

この状況を処理する最善の方法は次のとおりです。

私はこの一般的な機能を持っています

Function FieldValue(Of T)(row As DataRow,fieldName As String) As T
  Return If(row.IsNull(fieldName),Nothing,CType(row(fieldName),T))
End Function

フィールド値が null で T が String である特殊なケースでは、Nothing ではなく String.Empty を返したいと考えています。

4

1 に答える 1

2

T = 文字列に特定の関数を提供するのが最も簡単な方法だと思います。

Function FieldValue(row As DataRow ,fieldName As String) As String
  Return If(row.IsNull(fieldName), String.Empty, CType(row(fieldName), String))
End Function

(既存のジェネリック関数の上に)


別のオプションは次のとおりです。

Function FieldValue(Of T)(row As DataRow,fieldName As String) As T
    If GetType(T) = GetType(String) And row.IsNull(fieldName) Then
        Return CType(CType(String.Empty, Object), T)
    Else
        Return If(row.IsNull(fieldName), Nothing, CType(row(fieldName), T))
    End If
End Function
于 2012-06-04T03:04:04.140 に答える