Pregunta

Hay una .Función de red que hace que.Supongo que si no tengo que hacer mi propio método.

La cosa es que tengo una función.Se acepta números enteros.Si pasa un 0 número entero o un valor nulo todavía funciona.El problema es que el valor de un textbox vacío es una Cadena.Valor vacío.

No quiero usar si.Quiero decir que podría, pero es mucho mejor si me puede llamar a mi función como esta

MyFunction(txtTextbox.De texto)

Pero no va a funcionar porque no puede convertir la cadena.vacía a un número entero.

¿Fue útil?

Solución

Creo que se necesita:

if(string.IsNullOrEmpty(value)) value = null;

o

int MyFunction(string value)
 {
      if(string.IsNullOrEmpty(value)) return 0;

      int val = 0;
      int.TryParse(value, out val);
      return val;
 }

Otros consejos

¿Qué pasa, eh, aceptando un número entero en la función que debe leer números enteros, y el uso int.Parse o int.TryParse en la cadena de antemano?

Sólo desde una perspectiva diferente, supongo que también tendrá su cuadro de texto para permitir sólo numérico para introducir. De lo contrario sólo el manejo nula isnt va a ser a prueba de balas contra alguien que entra no numérico. Tiene que ser algunos enmascaramientos, controlador de eventos o de validación que ha creado para ella. ¿Qué hay de crear su propia NumTextBox que heredan de cuadro de texto con las conductas de restricción de entrada que ya tenía y, o bien propiedad de texto de anulación o crear una nueva propiedad llama Valor que se ocupa de todas las conversiones y devuelven el valor apropiado consistentemente a través de tu sistema.

Probar

   Sub MyFunction(ByVal Param1Integer as Integer)
     ' Do Something
   End Sub

   Sub MyFunction(ByVal Param1String as String)
     MyFunction(Val(Param1String))
   End Sub

Se asume que una cadena vacía es lo mismo que 0.

¿Usted ha mirado en el uso de un NumericUpDown (control numérico)? Dispone de un miembro de .Value (siempre un número entero válido!) En lugar de tener que convertir de una cadena. Puede limitar los valores superior e inferior, así como establecer un valor predeterminado.

Yo sólo usaría una línea IF (VB):

MyFunction(IIf(txtTextBox.Text Is Nothing, "", txtTextBox.Text))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top