0

您将如何格式化/缩进这段代码?

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

或者

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

编辑:

我的班级实际上有很多参数,所以这可能会影响你的反应。

4

13 回答 13

12

我同意 Patrick McElhaney 的观点;没有必要嵌套它....

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

这里有几个小优势:

  1. 您可以在第二行设置断点并检查“aBlah”。
  2. 您的差异将更清晰(变化更明显),无需嵌套语句,例如创建新的 Blah 是在将其添加到列表中的独立语句中。
于 2008-11-22T16:54:22.737 回答
5

我会选择单线。如果真正的参数使一行太长,我会用一个变量将它分解。

Blah blah = new Blah(1,2,3,55);
int ID = Blahs.Add( blah );
于 2008-11-22T16:07:13.520 回答
4
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        */ 
    )          
);
于 2008-11-22T16:32:45.887 回答
4

所有数字都被添加到结果中。无需单独评论每个数字。一条评论“这些数字加在一起”就可以了。我要这样做:

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 */
));
于 2008-11-22T16:45:44.767 回答
2

或者

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

不过,我必须承认,在 77 次中,我有 76 次做你第一次做的事情。

于 2008-11-22T16:02:39.643 回答
2

第一种方式,因为无论如何你都要内联它。

于 2008-11-22T16:05:23.880 回答
2

我将使用与您的第一个示例类似的格式,但在括号分隔符之前和之后没有多余的空格分隔符:

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

请注意,在这种情况下,我也不会使用全大写的变量名,这通常意味着一些特殊的东西,比如常量。

于 2008-11-22T16:47:51.127 回答
2

要么把它分成两行:

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

或者缩进 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
))
于 2008-11-22T17:03:06.743 回答
1

无论 Eclipse 的自动格式化程序给了我什么,所以当下一个开发人员在提交之前处理该代码和格式时,差异不会出现奇怪的问题。

于 2008-11-23T16:35:28.343 回答
1

一行,除非有很多数据。我会在大约十个项目或总共六十、七十列上划线,无论先出现什么。

于 2008-11-22T16:13:48.187 回答
0

int ID = Blahs.Add(new Blah(1,2,3,55)); // 数字 n 使得 n 的基数为 4 位的集合等于 n 的基数为 6 的位的集合。

于 2008-11-22T17:52:00.047 回答
0

问题与

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

是它与您的名称空间混淆。如果您不需要对 Blah 的引用,则不应创建它。

于 2008-11-22T17:54:23.520 回答
0

我要么把它作为一个单行来做,要么把它分配new Blah给一个变量,这取决于我是否需要Blah再次直接引用它。

至于几个答案通过将每个参数放在单独的行上并带有注释来解决的可读性问题,我将通过使用命名参数来解决这个问题。(但不幸的是,并非所有语言都支持命名参数。)

int ID = BLahs.Add(new Blah( foo => -1, bar => -2, baz => -3 ));
于 2008-11-22T18:46:19.487 回答