Как я могу форматировать такие параметры метода, располагаясь вертикально, по одному на строку? - программирование
Подтвердить что ты не робот

Как я могу форматировать такие параметры метода, располагаясь вертикально, по одному на строку?

У меня есть метод, который я хочу отформатировать следующим образом:

public static IQueryable<ThingRequest> GetThings( this EntityContext one
                                                , int? two = null
                                                , int? three = null
                                                , int? four = null
                                                , int? five = null
                                                , String six = null 
                                                , IEnumerable<String> seven = null) {

В принципе, если определение метода будет превышать длину строки, я бы хотел, чтобы там был один параметр на строку. Я не слишком обеспокоен запятыми (если они появляются в конце каждой строки, это прекрасно).

Но R # форматирует его так:

public static IQueryable<ThingRequest> GetThings( this EntityContext one, int? two = null, int? three = null, int? four = null, int? five = null,
                                                  String six = null, IEnumerable<String> seven = null ) {

... поэтому он их строит, но в строке есть несколько параметров, и просто выбрать какой-либо один параметр.

Кстати, при вызове методов он стекирует аргументы один за линией, если максимальная длина строки превышает (хотя в этом случае я бы предпочел, чтобы это не было).

Я побывал в параметрах R # и исследовал там широкий набор флажков, но я не вижу, как улучшить свою ситуацию. Идеи?

4b9b3361

Ответ 1

Попробуйте изменить вариант с этого пути:

ReSharper | Options -> 
Code Editing | C# | Formatting style | Line breaks and Wrapping -> 
Line wrapping | Wrap formal parameters

чтобы Chop всегда. Я не знаю, можно ли разместить запятую так, как вы хотите, но, по крайней мере, в каждой строке будет один параметр. Удачи!

Ответ 2

Почему бы не обернуть их в объект и передать объект. Создайте класс! И тогда вы передаете только один параметр.

public class MyParam
{
   public EntityContext one { get; set; }
   public Nullable<int> two { get; set; }
   .....
}

public static IQueryable<ThingRequest> GetThings(MyParam TheParameters) {...}

Таким образом, позже вы также можете добавить метод, который проверяет параметры для экземпляра.

И если вы действительно хотите быть умным, вы можете добавить метод GetThings к этому классу, и теперь вы говорите ООП!

Ответ 3

Если у вас возникли проблемы с выбором "любого одного параметра", вам следует серьезно подумать о том, как настроить этот метод.

Дядя Боб Мартин ( "Чистый код" ) рекомендует, чтобы у вас было 2-3 параметра макс. Если вы используете больше, чем это, то, скорее всего, у вас может не быть самого чистого дизайна, и это должен быть мысленный намек на то, чтобы вернуться к тому, почему вы хотите его спроектировать таким образом.

Кроме того, я понимаю, что это не прямой ответ на ваш вопрос, но это может быть ответ, который делает ваш исходный вопрос спорным (если вы решите, что хотите уменьшить количество параметров). Однако, это ваш код, поэтому он в конечном итоге зависит от того, что вы предпочитаете.