2011-06-27 13 views
9

Me gustaría poder controlar el código predeterminado que se genera para los eventos cuando uso uno de los bloques generados automáticamente de Visual Studio. La plantilla actual es la siguiente:¿Es posible modificar el código del controlador de eventos generado automáticamente en Visual Studio?

void HandlerName(object sender, HandlerEventArgs e) { 
    throw new NotImplementedException(); 
} 

quisiera cambiar esto a lo siguiente:

private void HandlerName(object sender, HandlerEventArgs args) { 
    throw new NotImplementedException(); 
} 

A saber que es el argumento args que siempre cambian.

ACTUALIZACIÓN: Además de esto, es política que también incluyamos comentarios para miembros privados aquí, por lo tanto, otro caso de uso para mi requisito es también generar el comentario predeterminado.

ACTUALIZACIÓN 2: Ahora retraer el razonamiento por querer cambiar el nombre de e a args debido a la evidencia de una convención de nombres no estándar, sin embargo todavía me gustaría anular la plantilla si es posible para el acceso explícito modificadoras y predeterminados comentarios .

+2

francamente, me gustaría poner automáticamente el 'privado'. –

+0

De acuerdo, aunque no es tan importante para mí como privado es el modificador de acceso predeterminado para los miembros. Particularmente me gustaría 'args' en lugar de' e' debido a la cara que suelo usar 'e' dentro de las expresiones lambda, especialmente los eventos lambda donde' (s, e) 'se desea, aunque recientemente cambié a '(s, a)'. –

+3

Hay una razón por la cual el parámetro argumentos de evento siempre se llama 'e'. Es una convención estándar en el.NET World, recomendado por todas las guías de estilo oficiales y no oficiales, y le recomiendo encarecidamente que comience a seguirlo. La modificación de 'args' es bastante no estándar, lo que perjudica la legibilidad sin ningún beneficio. –

Respuesta

1

creo que el e proviene de la firma del delegado (delegate void HandlerEventHandler(object sender, HandlerEventArgs e)), por lo que no se puede cambiar sin cambiar también la firma del delegado ...

+0

Razonamiento muy comprensible Thomas, +1 para eso. Todavía estaría muy interesado en una forma de obtener VS para formatear esto automáticamente, incluso dejando el nombre de 'e'. Sé que lo que estoy pidiendo solo toma unos segundos para anularlo manualmente, sin embargo, aún son unos pocos segundos :) –

0

¿Está diciendo que desea cambiar el código generado automáticamente cuando crea un controlador de eventos?

Mi respuesta es no, pero no estoy muy seguro de por qué lo necesitaría.

+0

Mi razonamiento se ilustra en el ejemplo proporcionado, aunque deseo extender esto más allá proporcionando también los comentarios predeterminados para el controlador. Es política para nosotros aquí también comentar a los miembros privados. –

0

En el caso de que todavía quiere cambiar algo en el auto código generado para el controlador de eventos, utilizo la extensión this para Visual Studio desde hace un par de años.

Es muy útil generar un nombre de controlador de eventos más limpio. Como verá, en lugar de generar algo como txtName_LostFocus, la extensión le sugerirá un método con un nombre como este: OnNameLostFocus.

Esto ayuda a eliminar los guiones bajos y los prefijos que solemos agregar a los controles. La extensión tiene una pantalla de configuración para agregar todos los prefijos que desee.

Pero todo lo que digo no es útil para responder a su pregunta. Aquí es donde ayuda -> En el código que puede descargar, puede ver cómo funciona el motor para reemplazar el nombre del método del controlador de eventos y estoy totalmente seguro de que puede encontrar una solución para cambiar el nombre de cualquier argumento que desee (si aún quieres) y también, agrega un modificador explícito.

Voy a tratar de encontrar la solución y hacerle saber mi progreso.

ACTUALIZACIÓN: También puede utilizar ReSharper que será automáticamente si desea añadir modificador explícita para usted, utilizando el motor de limpieza.

Cuestiones relacionadas