Ich schließe eine Methode in einen Try-Catch-Block ein, bin mir aber nicht sicher, wo eine char-Variable deklariert werdC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Ich schließe eine Methode in einen Try-Catch-Block ein, bin mir aber nicht sicher, wo eine char-Variable deklariert werd

Post by Anonymous »

Ich habe diese Methode in meinem Programm, sie soll das Geschlecht des Benutzers für später im Programm registrieren (mit männlich und weiblich als einzig gültigen Optionen):

Code: Select all

public static void Main(string[] args)
{
enterGender();

Code: Select all

public static char EnterGender()
{
try
{
Console.WriteLine("Are you Male or Female? Enter M for Male and F for Female:");
char gender = Convert.ToChar(Console.ReadLine());
if (gender != 'M' || gender != 'F')
{
Console.WriteLine($"There is no gender beginning with {gender}. Please enter M for Male or F for Female!");
}
else
{
Char.ToUpperInvariant(gender);
}
return gender;
}
catch (ArgumentOutOfRangeException ex)
{
Console.WriteLine("Please enter either M for Male or F for female!");
}
}
Ich versuche, eine Funktionalität zu implementieren, die den Benutzer dazu zwingt, es erneut zu versuchen, wenn er weder M noch F mit Ausnahmebehandlung einfügt, bin mir aber nicht sicher, wo ich Folgendes einfügen soll:

Code: Select all

return gender:
Wenn ich die Rückgabemethode dort platziere, wo sie sich im Beispiel befindet, wird CS0161 ausgegeben (nicht alle Codepfade geben einen Wert zurück). Wenn ich es jedoch außerhalb des Try-Catch-Blocks, aber innerhalb der Methode platziere, erhalte ich den Fehler CS0103 (der Name „Geschlecht“ existiert im aktuellen Kontext nicht).
Wo wäre der beste Ort, um den Rückgabewert einzufügen, um den Fehler zu beheben, und/oder der beste Weg, die Ausnahmebehandlung innerhalb des Try-Catch-Blocks einzufügen, um sicherzustellen, dass Benutzer nicht fortfahren können, ohne M für männlich oder F für weiblich einzugeben?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post