Maison >développement back-end >C++ >Pourquoi ma calculatrice C # lance-t-elle une 'chaîne d'entrée n'était pas dans un format correct'?
Le dépannage de la "chaîne d'entrée n'était pas dans un format correct" dans votre calculatrice C #
Cette erreur C # commune, "La chaîne d'entrée n'était pas dans un format correct", apparaît généralement lorsque vous essayez de convertir une chaîne (comme du texte à partir d'une zone de texte) en un nombre (par exemple, un entier). Dans votre calculatrice, cela se produit probablement parce que le code tente de convertir le contenu de la zone de texte en entiers avant que l'utilisateur n'ait entré des nombres valides.
Le problème découle de l'initialisation des variables entières au sein du constructeur. À ce stade, les zones de texte sont vides ou contiennent des données non numériques, ce qui fait échouer Int32.Parse
.
le correctif:
La solution consiste à déplacer la conversion de nombres aux gestionnaires d'événements de clic de bouton. Cela garantit que les zones de texte contiennent l'entrée de l'utilisateur avant la tentative de conversion.
Voici comment vous modifieriez les gestionnaires d'événements de clic de votre bouton:
<code class="language-csharp">private void button1_Click(object sender, EventArgs e) { if (int.TryParse(textBox1.Text, out int a) && int.TryParse(textBox2.Text, out int b)) { add(a, b); result(); } else { // Handle invalid input (e.g., display an error message) MessageBox.Show("Please enter valid numbers."); } } private void button2_Click(object sender, EventArgs e) { if (int.TryParse(textBox1.Text, out int a) && int.TryParse(textBox2.Text, out int b)) { subtract(a, b); result(); } else { MessageBox.Show("Please enter valid numbers."); } }</code>
Amélioration importante: en utilisant Int32.TryParse
Le code ci-dessus utilise Int32.TryParse
au lieu de Int32.Parse
. TryParse
est nettement meilleur car il:
true
si la conversion est réussie et false
sinon, empêchant le programme de s'écraser. MessageBox.Show
) pour informer l'utilisateur de l'entrée non valide. Cette approche robuste rend votre calculatrice beaucoup plus conviviale et empêche des plantages inattendus. N'oubliez pas d'ajuster add()
et subtract()
pour accepter les paramètres int a
et int b
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!