Что такое возможно оправдание не оборачивать длинные списки аргументов? (StyleCop SA1115)

голоса
2

Я застрял в битве между ReSharper и StyleCop, и я хотел бы, чтобы ReSharper победить, но я хочу услышать аргументы в пользу StyleCop прежде чем сделать это.

Когда я пишу длинные списки аргументов ReSharper благоразумно отбивные список параметров и перезапускает его на следующей строке. Я считаю, что гораздо более удобным для чтения.

Когда я бегу StyleCop над кодом он хочет меня оставить эти строки очень долго. Мне не нравится, поэтому я хочу, чтобы игнорировать это правило StyleCop (SA1115). Я не могу думать о хорошем причина, почему SC хотели бы эти длинные линии в первую очередь - это просто случай «мы всегда делали это так»?

Задан 09/12/2008 в 15:05
источник пользователем
На других языках...                            


4 ответов

голоса
5

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)
Ответил 29/10/2010 в 17:23
источник пользователем

голоса
2

Это, вероятно, чтобы напомнить вам, что ваш список аргументов слишком долго и должен быть сокращен.

Ответил 09/12/2008 в 15:07
источник пользователем

голоса
1

Во время воспроизведения примерно с кодом из этого вопроса , я также упал в немилость SA1115 с помощью запуска StyleCop из VS IDE. После некоторого отвода о, вот конечный результат , который 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;
    });
}

Просто думал, что я разделю его.

Ответил 24/08/2009 в 22:44
источник пользователем

голоса
0

Кажется , что правило технически говорит «параметр должен следовать запятой.» Довольно нит-придирчивы , если вы спросите меня, но некоторые люди считают , что в стартовом строки продолжения с запятыми, чтобы действительно показать эй! Эта линия является продолжением! Например

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

Независимо плывет лодка, лично :)

Ответил 09/12/2008 в 15:17
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more