我有一个我希望格式化的方法:
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#选项并探索了各种各样的复选框,但我不知道如何改善我的情况。想法?
答案 0 :(得分:18)
尝试从此路径更改选项:
ReSharper | Options ->
Code Editing | C# | Formatting style | Line breaks and Wrapping ->
Line wrapping | Wrap formal parameters
总是砍。我不知道是否可以按照你想要的方式放置逗号,但至少每行会有一个参数。祝你好运!
答案 1 :(得分:2)
为什么不将它们包装在一个对象中并传递该对象。创建一个类!然后你只传递一个参数。
public class MyParam
{
public EntityContext one { get; set; }
public Nullable<int> two { get; set; }
.....
}
public static IQueryable<ThingRequest> GetThings(MyParam TheParameters) {...}
这样,稍后,您还可以添加一个验证参数的方法。
如果你真的想要聪明,你可以将GetThings
方法添加到这个类中,现在你正在谈论OOP!
答案 2 :(得分:1)
如果您在挑选“任何一个参数”时遇到问题,那么您应该认真考虑调整设计此方法的方式。
鲍勃·马丁叔叔(“清洁代码”)建议你最多有2-3个参数。如果你使用的不仅仅是那个,那么你很可能没有最干净的设计,而且应该重新审视你为什么要这样设计它。
另外,我意识到这不是你问题的直接答案,但它可能是一个答案,使你的原始问题没有实际意义(如果你决定要减少参数的数量)。但是,这是你的代码,所以它最终取决于你喜欢的。