Что из следующих двух лучше?Почему?
Отл.1:
public class TestClass
{
public TestClass(CoolClass cool)
{
this.Cool = cool;
}
CoolClass _cool
public CoolClass Cool
{
get
{
return _cool;
}
set
{
_cool = value;
}
}
}
Пример.2:
public class TestClass
{
public TestClass(CoolClass cool)
{
_cool = cool;
}
CoolClass _cool
public CoolClass Cool
{
get
{
return _cool;
}
set
{
_cool = value;
}
}
}
(я знаю, что можно просто сделать public CoolClass { get; set; }
, но давайте на секунду проигнорируем это.) Я думаю, это просто сводится к: Из класса, еслииспользовать его свойства или соответствующие поля для получения / установки значений?
РЕДАКТИРОВАТЬ: Большое спасибо всем за ваши ответы.Кажется, что существует множество противоречивых мнений.Итак, вот что я решил, дайте мне знать, что вы думаете: я буду использовать свойства всякий раз, когда это возможно;только при наличии побочных эффектов я буду использовать другой способ доступа.
Почему?
- мне нравится идея доступа к переменной только из одного места.
- Я могу легко интегрировать логику в доступ к переменным.
- я часто использую public CoolClass { get; set; }
, поэтому использование свойств, когда это возможно, более согласованно.
И я заметил, что, к сожалению, невозможно объявить свойство с несколькими получателями / установщиками, которые имеют разные модификаторы видимости - оно будетбыло приятно иметь как частного, так и общедоступного сеттера ...