Después de revisar un poco cómo utilizar los Nullable Types, llego a la conclusión de que no me aportan nada nuevo.
Me explico.
En un principio, me entusiasmó la idea, pues pensé que de esta forma podía disponer de un tipo de datos, por ejemplo, Nullable(Of DateTime), que aceptaría como valores tanto fechas como DBNull.Value
Pero cuál es mi sorpresa, que cuando intento asignarle un DBNull.Value obtengo un error en tiempo de diseño. Vamos, que no cuela!
Entonces empiezo a buscar información y me encuentro con que, a pesar de utilizar Nullable Types, uno tiene que preguntar a la variable algo así:
Código VB.NET:
Ver original
Dim miFecha As Nullable(Of DateTime) [...] If miFecha.HasValue Then dRow("CampoFechaBD") = miFecha Else dRow("CampoFechaBD") = DBNull.Value End If
Ahí se cayó todo el mito para mi.
Un tipo Nullable, a mi entender debería permitir que yo hiciera algo así:
Código VB.NET:
Ver original
Dim miFecha As Nullable(Of DateTime) miFecha = DBNull.Value dRow("CampoFechaBD") = miFecha
En este caso si que me quitaría código de encima el hecho de usar Nullable Types, pero si he de preguntar si tiene valor (HasValue) como en el caso de arriba, ya estamos igual.
Para eso, sigo utilizando el código que vengo usando hasta ahora:
Código VB.NET:
Ver original
Dim miFecha As DateTime [...] If Not miFecha Is Nothing Then dRow("CampoFechaBD") = miFecha Else dRow("CampoFechaBD") = DBNull.Value End If
En fin, esta ha sido una de mis primeras experiencias con los Nuyllable Types.
Dejo este hilo abierto para quien pueda aportar información o un punto de vista diferente (o igual) sobre este tema.
Saludos.