В настоящее время я написал метод расширения для DataRow
, который преобразует значение строки к определенному типу объекта, метод выглядит следующим образом:метод расширения для DataRow объекта .NET
<ExtensionAttribute> _
Public Function GetValue(Of T)(row As DataRow, columnName As String) As T
'IF TABLE DOESN'T CONTAIN COLUMN RETURN DEFAULT OF T
If Not row.Table.Columns.Contains(columnName) Then
Return Activator.CreateInstance(Of T)()
'IF ROW IS DB NULL RETURN DEFAULT OF T
If row(columnName) Is DBNull.Value Then
Return Activator.CreateInstance(Of T)()
'RETURN T
Return CType(row(columnName), T)
End Function
Мой вопрос заключается в том, как улучшить этот метод что пользователь может установить значение по умолчанию для объекта (T) (например, для логического типа, который не возвращает значение FALSE по умолчанию, чем значение TRUE). Конечно, это будет необязательный параметр метода расширения.
Знаете ли вы, что уже существует такая функция в структуре под названием 'T Field (эта строка DataRow, string columnName)'? См. Https://msdn.microsoft.com/en-us/library/bb360891(v=vs.90).aspx –
Magnus
@Magnus: ... который даже поддерживает типы с возможностью NULL, которые лучше, чем использование значения по умолчанию для данный тип (что делает OP). –