代码之家  ›  专栏  ›  技术社区  ›  Stewart Johnson

不包装长参数列表的可能理由是什么?(StyleCop SA1115)

  •  2
  • Stewart Johnson  · 技术社区  · 17 年前

    当我编写长参数列表时,ReSharper明智地切掉参数列表,并在下一行重新启动它。我觉得这更具可读性。

    4 回复  |  直到 7 年前
        1
  •  6
  •   rob    14 年前

    StyleCop不希望您将所有参数放在一条很长的线上。但是,它也不希望您只是随意插入一个换行符,将参数列表的一部分向下移动到下一行。StyleCop希望您执行以下操作之一:

    public void MyMethod(int param1, int param2, int param3)
    
    public void MyMethod(
        int param1, int param2, int param3)
    
    public void MyMethod(
        int param1,
        int param2,
        int param3)
    
        2
  •  2
  •   Paul Tomblin    17 年前

    这可能是为了提醒你,你的论点列表太长了,应该缩短。

        3
  •  1
  •   Community Mohan Dere    9 年前

    question ,通过从VS IDE运行StyleCop,我还与SA1115发生冲突。经过一番胡闹之后,StyleCop认为最终结果还可以:

    public static string Format<T>(string pattern, T template)
    {
        Dictionary<string, string> cache = new Dictionary<string, string>();
    
        return RegexExpression.Replace(
            pattern, 
            match =>
        {
            string key = match.Groups[1].Value;
            string value;
    
            if (!cache.TryGetValue(key, out value))
            {
                var prop = typeof(T).GetProperty(key);
    
                if (prop == null)
                {
                    throw new ArgumentException("Not found: " + key, "pattern");
                }
    
                value = Convert.ToString(prop.GetValue(template, null));
                cache.Add(key, value);
            }
    
            return value;
        });
    }
    

    我只是想和你分享一下。

        4
  •  0
  •   J Cooper    17 年前

    嘿这一行是一个延续! 例如。

    void Foo(  int blah
             , string blork
             , ...
    

    推荐文章