如何设置格式,以便方法参数垂直堆叠,每行一个

本文关键字:一个 垂直 设置 何设置 格式 方法 参数 | 更新日期: 2023-09-27 18:35:18

我有一个方法,我想这样格式化:

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# 选项并探索了各种可用的复选框,但我看不到如何改善我的情况。想法?

如何设置格式,以便方法参数垂直堆叠,每行一个

尝试从以下路径更改选项:

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

永远砍。我不知道是否可以按照您想要的方式放置逗号,但至少每行会有一个参数。祝你好运!

为什么不将它们包装在一个对象中并传递对象。创建一个班级!然后你只传递一个参数。

public class MyParam
{
   public EntityContext one { get; set; }
   public Nullable<int> two { get; set; }
   .....
}
public static IQueryable<ThingRequest> GetThings(MyParam TheParameters) {...}

这样,稍后您还可以添加一个验证参数的方法。

如果你真的想变得聪明,你可以将GetThings方法添加到这个类中,现在你说的是OOP!

如果您在挑选"任何一个参数"时遇到问题,那么您应该认真考虑调整应该如何设计此方法。

鲍勃·马丁叔叔("清洁代码")建议您最多有 2-3 个参数。如果你使用的不止这些,那么你很可能没有尽可能干净的设计,这应该是一个心理暗示,重新审视你为什么要这样设计它。

另外,我意识到这不是对您的问题的直接回答,但它可能是一个使您的原始问题变得毫无意义的答案(如果您决定要减少参数的数量)。但是,这是您的代码,因此最终取决于您的喜好。