Para ser un programador ordenado, trato de corregir las advertencias de compilación. Pero me quedo atascado con las advertencias de los parámetros no utilizados en los controladores de eventos de la página. Ejemplo:

public partial class MyPage : System.Web.UI.Page
{
    protected void Page_PreInit(object sender, EventArgs e)
    {
        some code not referencing sender or e
    }

Si sigo la recomendación de VisualStudio y elimino los parámetros no utilizados sender y e, alteraría la firma del método y el código podría no funcionar correctamente. Sin embargo, según esta página de ayuda de Microsoft, la firma de los controladores de eventos sí No mire los parámetros. El lenguaje de esa página me confunde, con jerga como breaking, pero en este caso supongo que es seguro eliminar los parámetros no utilizados.

Pero, ¿qué pasa con el siguiente controlador de eventos, donde los argumentos tampoco se usan, pero VisualStudio NO emite la misma advertencia:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack && !IsCallback)
        InitPagina();
    return;
}

Mis preguntas son:

  • ¿Estos parámetros realmente no se utilizan ni son necesarios?
  • ¿Qué se entiende por el término breaking en la página de ayuda?
  • ¿Qué es diferente entre los tipos de controlador de eventos para Page_PreInit y Page_Load?
  • ¿Los parámetros no utilizados realmente generan costos de mantenimiento y rendimiento, como se indica en la página de ayuda?
  • ¿Quizás debería ser una buena práctica suprimir las advertencias de parámetros no utilizados?
1
Roland 15 dic. 2016 a las 13:51

2 respuestas

La mejor respuesta

Para responder a mis propias preguntas, en orden:

  • Estos parámetros pueden ser necesarios más adelante, por lo que en realidad no son "innecesarios" (ver comentario de Michael Gorsich)
  • No importa cuál sea el significado de la jerga de Microsoft como breaking, si hablan de cosas discutibles como "innecesario"; Propondría una nueva jerga como unneeded build warnings
  • Ambos controladores de eventos son similares en el sentido de que pueden recibir el mismo número y tipo de argumentos, es simplemente un comportamiento extraño de VisualStudio (o DevExpress CodeRush?)
  • Los parámetros no utilizados no incurren en costos de mantenimiento y rendimiento; en cambio, eliminarlos puede generar costos más adelante cuando puedan ser necesarios y el desarrollador tiene que "saber" que se pueden agregar nuevamente
  • Ahora estoy buscando cómo configurar VS para suprimir todas las advertencias sobre parámetros no utilizados
0
Roland 16 dic. 2016 a las 15:28

No estoy 100% seguro. Pero creo que si eliminas los parámetros, es posible que la función ya no se llame. Dado que la firma esperada cambió.

0
Jacopo 15 dic. 2016 a las 10:53