Я работаю на C#, и я начинаю играть со свойствами. Одна вещь, которую я не знаю, - это лучший способ/где поставить логику для набора аксессуаров свойств класса и способы обработки ошибок.Свойства C# - Задайте вопрос
Например, у меня есть это (основной) класс:
class Person
{
private int _Age = 18;
public Person()
{
}
public int Age
{
get
{
return _Age;
}
set
{
_Age = value;
}
}
}
Теперь у меня есть требование о собственности Age, 0 < < Возраст 100. Где поставить логику для этого?
Должен ли я положить его в собственность?
public int Age
{
get
{
return _Age;
}
set
{
if (value < 0 || value > 99)
// handle error
else
_Age = Convert.ToInt32(value);
}
}
или через класс, который создает объект Person?
static void Main(string[] args)
{
Person him = new Person();
int NewAge = -10;
if (NewAge < 0 || NewAge > 100)
// handle error
else
him.Age = NewAge;
}
Теперь, если проблема с NewAge (она не соответствует моему ограничению)? Должен ли я создать настраиваемое исключение и выбросить его? Должен ли я просто печатать сообщение о том, что срок службы действителен?
Я сделал некоторый поиск в Google и не могу найти ничего, что полностью отвечает на мои вопросы. Мне нужна книга: -/
Заметим также, что ваш сеттер не нуждается в 'Convert.ToInt32 (значение)' ... потому что свойство является 'int',' value' также будет 'int'. – jerryjvl
Разве это не считается защитным программированием? Или я принимаю это далеко? –
Ты забираешь это слишком далеко. Нет никакой возможности, что вещь, которую вы получаете, не является int. –