Es scheint ein paar Probleme zu sein:
One ist einfach ein Design/Nutzung Problem: Sie haben eine Methode namens „evenOrOdd“, die einen int zurückgibt . Es würde mehr Sinn ergeben, wenn Sie statt dessen eine Methode namens "IsEven" (oder "IsOdd") hätten, die eine bool zurückgibt, oder vielleicht eine namens "GetEvenOrOddMessage", die eine Zeichenkette zurückgibt.
Eine andere ist, dass Sie versuchen, eine nicht numerische Zeichenfolge in eine Ganzzahl zu konvertieren (Ihre int.Parse
-Methode schlägt mit einem nicht numerischen Zeichenfolgenwert fehl).
Vermutlich möchten Sie eine Methode, die eine Nachrichtenzeichenfolge zurückgibt, wenn die Zahl gerade oder ungerade ist, so dass Sie nicht versuchen müssen, irgendetwas in ein int, sondern in eine Zeichenfolge umzuwandeln.
So können wir eine Methode erstellen, die die Nachricht zurückgibt wir wollen, geben einige numerische Eingabe:
public string GetEvenOrOddMessage()
{
if (number % 2 == 0)
{
return (number + " is an even number");
}
else
{
return (number + " is an odd number");
}
}
nun zu testen, ob die Zeichenfolge in der Tat eine ganze Zahl, können wir int.TryParse
verwenden, die true zurück, wenn Die Syntaxanalyse ist erfolgreich und setzt einen out
Parameter auf den Wert.
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 (Nummer +" ist eine gerade Zahl ");' ist das Problem. Sie versuchen, String zu Nummer zu analysieren. Sie sollten den String aus der Methode zurückgeben und 'return number +" verwenden ist eine gerade Zahl "' –
Bitte fügen Sie die Deklaration für 'number' in Ihr Codebeispiel ein und teilen Sie uns mit, wie Sie es einrichten. –
@ChetanRanpariya bei Rückkehr – pkarthicbz