Является ли хорошей практикой инициализация личных элементов данных из ctor путем вызова связанных свойств вместо самих элементов данных? - PullRequest
1 голос
/ 14 апреля 2010
interface IAnimal
{
    string Name { get; set; }
}

class Dog : IAnimal
{
    private string name;
    public Dog(string name)
    {
        Name = name;
    }

    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}

1 Ответ

8 голосов
/ 14 апреля 2010

Как правило, лучше по возможности использовать свойства getter и setter, если только для этого нет особой причины. Если у установщика свойств есть побочный эффект (например, создание уведомления), который вам не нужен в конкретной ситуации, то можно назначить вспомогательное поле непосредственно изнутри объекта, но старайтесь избегать подобных ситуаций.

Причина, по которой стоит использовать свойство getter и setter, даже в самом реализующем классе: когда / если вам потребуется изменить реализацию getter / setter в будущем, например, добавить необходимые побочные эффекты, ваш код будет уже в хорошей позиции, чтобы соблюдать новую семантику получения / установки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...