Question

Y at-il une fonction .Net qui fait cela. Je suppose que s'il n'y a pas que je dois faire ma propre méthode.

La chose est que j'ai une fonction. Il accepte des entiers. Si vous passez un 0 entier ou une valeur nulle, il fonctionne toujours. Le problème est que la valeur d'une zone de texte vide est une valeur String.Empty.

Je ne veux pas utiliser si ce. Je veux dire qu'il pouvait, mais il est beaucoup plus agréable si je peux appeler ma fonction comme ceci

MyFunction (txtTextbox.Text)

Mais cela ne fonctionnera pas, car il ne peut pas convertir le String.Empty en entier.

Était-ce utile?

La solution

Je suppose que vous avez besoin:

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

ou

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

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

Autres conseils

Qu'en est-il, euh, accepter un entier dans votre fonction qui doit lire des nombres entiers et utiliser int.Parse ou int.TryParse sur la chaîne préalable?

Juste à partir d'un autre point de vue, je suppose que votre zone de texte devra également autoriser uniquement numérique à saisir. Sinon, la manipulation juste nulle isnt va être l'épreuve des balles contre une personne entrant non numérique. Il doit être soit quelques masquages, gestionnaire d'événements ou de validation que vous avez créé pour cela. Que diriez-vous de créer votre propre NumTextBox héritant de TextBox avec les comportements de restriction d'entrée que vous aviez déjà et soit passer outre la propriété de texte ou créez une nouvelle propriété appelle la valeur qui ressemble après toutes les conversions et de retourner la valeur appropriée cohérente à travers votre système.

essayer

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

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

On suppose qu'une chaîne vide est le même que 0.

scroll top