Foros del Web » Programación para mayores de 30 ;) » .NET »

Manejo de valores vacíos y tipos

Estas en el tema de Manejo de valores vacíos y tipos en el foro de .NET en Foros del Web. Hola, estoy intentando hacer un tratamiento genérico de tipos y manejo de nulos en VB.NET pero no me apaño muy bien... Quiero hacer una función, ...
  #1 (permalink)  
Antiguo 30/03/2010, 03:23
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Manejo de valores vacíos y tipos

Hola, estoy intentando hacer un tratamiento genérico de tipos y manejo de nulos en VB.NET pero no me apaño muy bien...

Quiero hacer una función, para usar con valores de campos (por ejemplo TextBox1.Text) que devuelva un valor por defecto si el campo esta vacio, p.ej:

IfNull(TextBox1.Text, 0) para un valor numérico o IfNull(TextBox1.Text, "") para un String, etc. Pero me da excepción al intentar convertir un campo vacío en el Integer 0.

Código vb:
Ver original
  1. Function IfNull(ByRef valor As VariantType, ByVal defValor As VariantType)
  2.         Select VarType(valor)
  3.             Case VariantType.String
  4.                 If valor = "" Then
  5.                     Return defValor
  6.                 Else
  7.                     Return valor
  8.                 End If
  9.             Case VariantType.Short
  10.                 If valor = VariantType.Null Then
  11.                     Return defValor
  12.                 Else
  13.                     Return valor
  14.                 End If
  15.             Case Else
  16.                 Return defValor
  17.         End Select
  18.     End Function

He visto este enlace donde proponen el uso de Is DBNull.Value pero me sigue dando excepción

¿Sabéis como resolver este tema o como comparar un valor vacío de un campo de texto con un número sin que de excepción?

Gracias
  #2 (permalink)  
Antiguo 30/03/2010, 07:59
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: Manejo de valores vacíos y tipos

No sé si resultará pero, ¿has probado a pasarlo a cadena sea cual sea el tipo?:
Código VB:
Ver original
  1. If String.Format("{0}", valor) = "" Then
  2. Return defValor
  3. Else
  4. Return valor
  5. End If
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:04.