Как бы вы форматировали / делали отступ для этого фрагмента кода? - PullRequest
0 голосов
/ 22 ноября 2008

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

int ID = Blahs.Add( new Blah( -1, -2, -3) );

или

int ID = Blahs.Add( new Blah(
1,2,3,55
)          
); 

Edit:

У моего класса много параметров, так что это может повлиять на ваш ответ.

Ответы [ 13 ]

12 голосов
/ 22 ноября 2008

Я согласен с Патриком МакЭлхани; нет необходимости его вкладывать ....

Blah aBlah = new Blah( 1, 2, 3, 55 );
int ID = Blahas.Add( aBlah );

Здесь есть несколько небольших преимуществ:

  1. Вы можете установить точку останова во второй строке и проверить «aBlah».
  2. Ваши различия будут чище (изменения более очевидны) без вложенных утверждений, например создание нового бла является независимым заявлением от добавления его в список.
5 голосов
/ 22 ноября 2008

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

Blah blah = new Blah(1,2,3,55);
int ID = Blahs.Add( blah );
4 голосов
/ 22 ноября 2008

Все числа добавляются к результату. Не нужно комментировать каждый номер отдельно. Комментарий "эти числа сложены вместе" сделает это. Я собираюсь сделать это так:

int result = Blahs.Add( new Blah(1, 2, 3, 55) );

, но если эти числа сами по себе имеют какое-то значение, каждое число может обозначать что-то совершенно другое, например, если Blah обозначает тип предмета инвентаря Я бы пошел с

int ID = Blahs.Add( new Blah(
    1, /* wtf is this */ 
    2, /* wtf is this */
    3, /* wtf is this */
    55 /* and huh */
));
4 голосов
/ 22 ноября 2008
int ID = Blahs.Add
( 
    new Blah
    (
        1,    /* When the answer is within this percentage, accept it. */ 
        2,    /* Initial seed for algorithm                            */ 
        3,    /* Maximum threads for calculation                       */ 
        55    /* Limit on number of hours, a thread may iterate        */ 
    )          
);
2 голосов
/ 22 ноября 2008

Либо разбить его на две строки:

new_Blah = new Blah(-1, -2, -3)
int ID = BLahs.Add(new_Blah);

Или сделайте отступ нового бла (); по телефону:

int ID = BLahs.Add(
    new Blah(-1, -2, -3)
);

Если аргументы не были длинными, в этом случае я бы, вероятно, сделал что-то вроде ..

int ID = BLahs.Add(new Blah(
    (-1 * 24) + 9,
    -2,
    -3
));

В качестве чуть более практичного примера, в Python я обычно делаю одно из следующего:

myArray.append(
    someFunction(-1, -2, -3)
)

myArray.append(someFunction(
    otherFunction("An Arg"),
    (x**2) + 4,
    something = True
))
2 голосов
/ 22 ноября 2008

Я бы использовал форматирование, подобное вашему первому примеру, но без лишних разделителей пробела до и после скобок:

int id = BLahs.Add(new Blah(-1, -2, -3));

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

2 голосов
/ 22 ноября 2008

первый способ, так как вы все равно его вкладываете.

2 голосов
/ 22 ноября 2008

или

int ID = Blahs.Add( 
            new Blah( 1, 2, 3, 55 )          
         );

Я должен признаться, однако, что 76 раз из 77 я делаю то, что вы делали в первый раз.

1 голос
/ 23 ноября 2008

Что бы мне ни дал автоформатер Eclipse, поэтому, когда следующий разработчик работает с этим кодом и форматирует перед фиксацией, с diff нет никаких странных проблем.

1 голос
/ 22 ноября 2008

Одна строка, если нет много данных. Я бы провел черту примерно в десяти пунктах или в шестидесяти семидесяти столбцах, что бы ни было на первом месте.

...