¿Cuál es una posible justificación para no incluir largas listas de argumentos? (StyleCop SA1115)

votos
2

Estoy atrapado en una batalla entre ReSharper y StyleCop, y me gustaría dejar que ReSharper gane, pero quiero escuchar los argumentos a favor de StyleCop antes de hacerlo.

Cuando estoy escribiendo largas listas de argumentos, ReSharper corta sensiblemente la lista de parámetros y la reinicia en la siguiente línea. Encuentro eso mucho más legible.

Cuando ejecuto StyleCop sobre el código, quiero que deje esas líneas realmente largas. No me gusta eso, así que quiero ignorar esa regla de StyleCop (SA1115). No puedo pensar en una buena razón por la cual SC quiera esas líneas largas en primer lugar, ¿es solo un caso de siempre lo hemos hecho de esta manera?

Publicado el 09/12/2008 a las 15:05
fuente por usuario
En otros idiomas...                            


4 respuestas

votos
5

StyleCop no quiere poner todos los parámetros en una línea muy larga. Sin embargo, también no quiero que acaba de insertar arbitrariamente un salto de línea para mover parte de la lista de parámetros a la línea siguiente. StyleCop gustaría que lleve a cabo uno de los siguientes:

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)
Respondida el 29/10/2010 a las 17:23
fuente por usuario

votos
2

Probablemente esté ahí para recordarle que su lista de argumentos es demasiado larga y debería acortarse.

Respondida el 09/12/2008 a las 15:07
fuente por usuario

votos
1

Mientras jugaba con el código de esta pregunta , también me encontré con SA1115 al ejecutar StyleCop desde VS IDE. Después de algunos problemas, aquí está el resultado final que StyleCop sintió que estaba bien:

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

Solo pensé en compartirlo.

Respondida el 24/08/2009 a las 22:44
fuente por usuario

votos
0

Parece que la regla dice técnicamente "el parámetro debe seguir a la coma". Bastante quisquilloso si me preguntas, pero algunas personas creen en comenzar líneas de continuación con las comas para realmente mostrar ¡hola! Esta linea es una continuación! P.ej

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

Lo que sea que flote tu bote, personalmente :)

Respondida el 09/12/2008 a las 15:17
fuente por usuario

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