Il semble y avoir quelques problèmes:
On est tout simplement une question de conception/utilisation: vous avez une méthode appelée « evenOrOdd » qui retourne un int . Cela aurait plus de sens si à la place vous aviez une méthode appelée "IsEven" (ou "IsOdd") qui renvoyait un booléen, ou peut-être une méthode appelée "GetEvenOrOddMessage" qui renvoyait une chaîne.
Une autre est que vous essayez de convertir une chaîne non numérique en un entier (votre méthode int.Parse
échouera avec une valeur de chaîne non numérique).
Vraisemblablement, vous voulez une méthode qui retourne une chaîne de message si le nombre est pair ou impair, donc vous n'avez pas besoin d'essayer de lancer quoi que ce soit dans un int, mais plutôt dans une chaîne.
Ainsi, nous pouvons créer une méthode qui retourne le message que nous voulons, donner une entrée numérique:
public string GetEvenOrOddMessage()
{
if (number % 2 == 0)
{
return (number + " is an even number");
}
else
{
return (number + " is an odd number");
}
}
Maintenant, pour tester si la chaîne est en effet un entier, on peut utiliser int.TryParse
, qui retourne true si l'analyse réussit et définit un paramètre out
sur la valeur.
private void checkerButton_Click(object sender, EventArgs e)
{
int input;
if (int.TryParse(checkerBox.Text, out input))
{
pali = new Palindrome() { number = input };
checkerLabel.Text = pali.GetEvenOrOddMessage();
}
else
{
// Do something if the input string is not a number
}
}
'return int.Parse (le nombre +" est un nombre pair ");' est le problème. Vous essayez d'analyser la chaîne en nombre. Vous devriez retourner la chaîne de la méthode et utiliser 'return number +" est un nombre pair "' –
Veuillez inclure la déclaration de 'number' dans votre exemple de code, et dites-nous comment vous l'avez défini. –
@ChetanRanpariya au retour – pkarthicbz