задача — если имя пользователя не введено — бросать эксепшн.
есть код:
private string _name;
public string Owner
{
get => _name;
set
{
try
{
if (ContainsOnlyCharacters(value))
{
_name = value;
}
}
catch (ArgumentNullException ex)
{
Console.WriteLine(ex.Message + "\nПопробуй еще! =)");
// tut navernoe
}
}
}
private bool ContainsOnlyCharacters(string source)
{
if (source is null
|| source == "")
{
throw new ArgumentNullException(nameof(BankAccount),
"Вы не ввели имени пользователя!");
}
return source.Where(char.IsLetter).Count() == source.Length;
}
как мне catch-блоке позволить юзеру еще раз попробовать ввести имя?
Пиздец, рекурсивный сеттер
был бы благодарен за предоставления хорошего решения. хотя, кажется, ду вайл норм
Внутри сеттера ещё ок кидать ексепшен. Console.writeLine и попытки снова ввести - снаружи
Обсуждают сегодня