English 中文(简体)
方法参数是垂直叠叠的,每行一个吗?
原标题:How do I format so method parameters are stacked vertically, one per line?

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

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) {...}

这样,稍后,你也可以添加一种方法,例如验证参数的方法。

如果您真的想要聪明, 您可以在此类中添加 < code> Getthings 方法, 现在您正在谈论 OOP!

如果您在选择“任何一个参数”时有困难, 那么您应该认真考虑调整您应该如何设计这个方法 。

Bob Martin 叔叔(“清洁代码 ” ) 建议您最多要有2-3个参数。 如果您使用更多, 那么机会是您可能没有最干净的设计, 并且它应该是一个心理暗示, 重新思考为什么你想这样设计它。

而且,我知道这不是你问题的一个直接答案,但它可能是一个使你最初的问题失去实际意义的答案(如果你决定要减少参数数量的话 ) 。 然而,它是你的代码,所以最终取决于你喜欢什么。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签