Стиль C#: Могут ли свойства быть сгруппированы с их вспомогательными полями?
Мне нравится организовывать простые свойства, такие как это:
private int foo;
public int Foo
{
get { return foo; }
set
{
// validate value
foo = value;
}
}
Я поиграл с StyleCop, и он кричит на меня за размещение полей после конструкторов. Является ли этот стиль общепринятым, если на поле никогда не ссылаются за пределами свойства? Примечание: я понимаю, что в этом участвуют личные предпочтения, но мне интересно, существует ли общее согласие по этому вопросу.
4 ответа
Да, это кажется мне разумным.
Обычно я помещаю все поля и свойства сверху, затем конструкторы, затем методы - но если вы хотите поместить их после конструкторов, это тоже кажется разумным.
Если ваши свойства будут простым доступом к данным, рассмотрите возможность использования автоматических свойств:
public int Foo { get; set; }
Компилятор создаст личную переменную-член за кулисами от вашего имени.
Специально к вашему вопросу, не кладите слишком много в инструменты, такие как ReSharper или StyleCop. Некоторые из способов, которыми они форматируют код, и вещи, на которые они жалуются, являются действительно вопросом предпочтения. Я не помещаю переменные-члены рядом с их открытыми свойствами, но я вижу, как это было бы удобно.
Май? Так как это влияет только на людей в вашей команде, вы должны выяснить, что они считают лучшим и пойти с этим. Style Cop часто немного за борт по своим рекомендациям.
Я обычно помещаю их после свойства, поскольку пространство выше зарезервировано для документации.
// placed up here, it looks kinda weird, imho
// private int foo;
/// <summary>
/// The index of the Foo in the <see cref="Bar"/>
/// </summary>
public int Foo
{
get { return foo; }
set
{
// validate value
foo = value;
}
}
private int foo;
Это может быть вопросом предпочтения, но это кажется лучше, чем смешивать их с частными членами.
Я обычно использую вложенную область для поддержки полей внутри области свойств, поскольку она не мешает визуальным комментариям студии, и все же они сгруппированы вместе.