换行是否有助于代码可读性?
是否有一种普遍接受的使用线路延续的礼仪?
为什么用这个:
SomeMethod(int someInt, Object someObject,
   String someString, bool someBool)
{
    ...
}
而不是这个:
SomeMethod(int someInt, Object someObject, String someString, bool someBool)
{
    ...
}
编辑:从行继续到换行重新措辞我的问题
Ree*_*sey 35
C#中不使用行继续,因为需要显式行终止符(;).
如果你在风格方面询问是否将一条线分成多行是一个好主意,那就值得商榷.StyleCop规则强制在一行上定义一行,或者将每个元素定义在一个单独的行上.我个人认为这是一个很好的指导方针,如果它太长而不适合80-90字符宽的编辑器,我通常会选择将一条线完全划分为部分.
根据您的新问题进行修改:
在这种情况下,我会遵循上面的指导原则.就个人而言,就你的具体情况而言,我将其留在一行:
SomeMethod(int someInt, Object someObject, String someString, bool someBool) 
{ 
    ... 
} 
这是一个很好的,简短的moethod声明,我认为没有理由将它拆分.如果参数的数量和类型的长度对于一行文本变得很长,我只会拆分它.
但是,如果你拆分它,我会将它分成每个参数的单独行:
SomeMethod(
    int someInt, 
    Object someObject, 
    String someString, 
    bool someBool) 
{ 
    ... 
} 
这样,至少很明显它是如何以及为什么分裂的,并且开发人员不会意外地跳过一个参数,因为两个在一行上.
Aar*_*ght 18
现在我们已经澄清说这与实际的行继续字符和简单的换行没有关系 - 你告诉我.这个:
IEnumerable<int> orderIDs = context.Customers.Where(c => c.CustomerID >= 1 && c.CustomerID <= 10).Select(c => c.Orders).SelectMany(o => o).OrderBy(o => o.OrderDate).Select(o => o.OrderID);
或这个?
IEnumerable<int> orderIDs = context
    .Customers
    .Where(c => c.CustomerID >= 1 && c.CustomerID <= 10)
    .Select(c => c.Orders)
    .SelectMany(o => o)
    .OrderBy(o => o.OrderDate)
    .Select(o => o.OrderID);
你宁愿读什么?
我认为在过去的几年里,线路长度的限制逐渐变长(或消失),因为每个人都得到宽屏高分辨率显示器,很少再打印出代码.我所研究的项目都没有官方指南,我们只是在编辑器窗口的宽度上使用常识和换行符(每个人在大致相同的分辨率下使用相同的基本Eclipse窗口布局).我发现这种方法没有问题.
我赞成在逻辑点断线.原因是帮助源代码控制差分和合并功能.我发现,如果将包含许多元素的语句分解为多行,那么理解这种环境中的更改会更容易.
监视器很大.但是你可以发现自己在笔记本电脑上工作并执行合并,你可以在屏幕上的不同窗口中拥有基础,源和目标分支.计算字符:17英寸笔记本电脑上的每个窗口只有大约55个字符宽.
如果您正在远程工作,您会发现水平滚动没有得到很好的优化,您可能会想到一些关于程序员在一行中编写具有15个参数的函数的指责.
因此,请考虑所有必须处理源代码的方法,并在满足您所有需求的地方打破行.
| 归档时间: | 
 | 
| 查看次数: | 20603 次 | 
| 最近记录: |