Мне было интересно, что считается лучшей практикой С#, частными/защищенными членами с публичными getters или публичными геттерами с частными/защищенными сеттерами?
public int PublicGetPrivateSetter
{
get;
private set;
}
private int _privateMember;
public int PublicGetPrivateMember
{
get { return _privateMember; }
}
Я чувствую, что использование частного члена в вашем коде более явственно, что это частный сеттер (с использованием соглашений об именах). С другой стороны, использование частных сетей дает вам возможность использовать виртуальный (защищенный), писать меньше кода, имеет меньше возможностей для ошибок и может дать вам возможность добавить побочный эффект позже, если вам нужно.
Я не мог найти то, что считается лучшей практикой, или даже если он считается лучше, чем другой. Из того, что я видел обычно в 80% случаев (из кода, который я видел), люди DONT используют частные сеттеры... Я не уверен, что это происходит потому, что люди не знают о частных сеттерах или потому, что они считается лучше использовать частных членов.
EDIT:
В самом деле, другие преимущества, о которых я забыл при использовании частных членов, являются значениями по умолчанию и использованием readonly.