Я видел (и использовал) в различных проектах этот макет, с группой полей и группой свойств:
private int MyIntField;
private string MyStringField;
public int MyInt {
get { return MyIntField; }
set { MyIntField = value; }
}
public string MyString {
get { return MyStringField; }
set { MyStringField = value; }
}
И я также встречал этот макет с полями рядом с их свойством:
private int MyIntField;
public int MyInt {
get { return MyIntField; }
set { MyIntField = value; }
}
private string MyStringField;
public string MyString {
get { return MyStringField; }
set { MyStringField = value; }
}
Есть ли причина считать одно лучше другого? Я думаю, что большинство стандартов кодирования рекомендуют Вариант № 1, но иногда бывает удобно иметь поле рядом со свойством, которое с ним работает.
Примечание: я предполагаю нетривиальные свойства, которые не могут использовать автоматически реализуемые свойства.