O que é uma possível justificativa para não envolver listas de argumentos longos? (StyleCop SA1115)

votos
2

Eu estou preso em uma batalha entre ReSharper e StyleCop, e eu gostaria de deixá-win ReSharper, mas eu quero ouvir os argumentos em favor da StyleCop antes de eu fazer isso.

Quando estou escrevendo longa lista de argumentos ReSharper sensata corta a lista de parâmetros e reinicia-lo na próxima linha. Eu acho que muito mais legível.

Quando eu executo StyleCop sobre o código que quer me deixar essas linhas muito longo. Eu não gosto que, assim que eu quero ignorar essa regra StyleCop (SA1115). Eu não posso pensar em uma boa razão pela qual SC gostaria aquelas longas linhas em primeiro lugar - é apenas um caso de nós sempre fizemos isso dessa maneira?

Publicado 09/12/2008 em 15:05
fonte usuário
Em outras línguas...                            


4 respostas

votos
5

O StyleCop não quero que você colocar todos os seus parâmetros em uma linha muito longa. No entanto, também não quero que você apenas arbitrariamente inserir uma nova linha para mover parte da lista de parâmetros para a próxima linha. StyleCop gostaria que você faça um dos seguintes procedimentos:

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)
Respondeu 29/10/2010 em 17:23
fonte usuário

votos
2

É provavelmente lá para lembrá-lo que a sua lista de argumentos é demasiado longo e deve ser encurtado.

Respondeu 09/12/2008 em 15:07
fonte usuário

votos
1

Enquanto brincando com o código a partir desta pergunta , eu também entrou em choque com SA1115 via correndo StyleCop do VS IDE. Depois de algum mucking, aqui é o resultado final que StyleCop sentia era OK:

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;
    });
}

Apenas pensei em compartilhá-lo.

Respondeu 24/08/2009 em 22:44
fonte usuário

votos
0

Parece que a regra tecnicamente diz "parâmetro deve seguir vírgula." Muito nit-exigente, se você me perguntar, mas algumas pessoas acreditam em começar a continuação linhas com as vírgulas, a fim de realmente mostrar hey! Esta linha é uma continuação! Por exemplo

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

Seja qual for o seu barco flutua, pessoalmente :)

Respondeu 09/12/2008 em 15:17
fonte usuário

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