Convertir String.Empty à Nothing / Null
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.
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.
Avez-vous regardé en utilisant un
Je voudrais simplement utiliser une ligne instruction IF (VB): MyFunction(IIf(txtTextBox.Text Is Nothing, "", txtTextBox.Text))