Обертывание метода в блок try-catch, но не знаете, где объявить переменную charC#

Место общения программистов C#
Ответить
Anonymous
 Обертывание метода в блок try-catch, но не знаете, где объявить переменную char

Сообщение Anonymous »

В моей программе есть этот метод, он предназначен для регистрации пола пользователя для дальнейшего использования в программе (единственными допустимыми вариантами являются «Мужской» и «Женский»):

Код: Выделить всё

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

Код: Выделить всё

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!");
}
}
Я пытаюсь реализовать функциональность, которая заставит пользователя повторить попытку, если он не вставит ни M, ни F с обработкой исключений, но я не уверен, куда включить:

Код: Выделить всё

return gender:
Если я помещу метод возврата там, где он находится в примере, он выдаст CS0161 (не все пути кода возвращают значение). Но если я помещу его за пределы блока try-catch, но внутри метода, я получу ошибку CS0103 (имя «пол» не существует в текущем контексте.
Где лучше всего вставить возвращаемое значение, чтобы исправить ошибку, и/или лучший способ вставить обработку исключений в блок try-catch, чтобы гарантировать, что пользователи не смогут продолжить работу без ввода M для мужчины или F для женщины.

Подробнее здесь: https://stackoverflow.com/questions/798 ... har-variab
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»