2009-05-27 13 views
9

Sé que la convención de nomenclatura para los métodos de clase en C# es comenzar con una letra mayúscula y cada palabra nueva es una letra mayúscula (por ejemplo, GetDeviceName).¿Por qué visual studio rompe la convención de nomenclatura para los métodos en C#?

Así que mi pregunta es por qué cuando creo un formulario, coloco un control sobre él, luego doy clic en el control (para que el IDE me cree automáticamente el método) obtengo un método que comienza con un carta ? (Por ejemplo s electButton_Click (object sender, EventArgs e))

Respuesta

11

La convención de nomenclatura para controladores de eventos de los controles han sido siempre controlName_EventName, así que básicamente, se vuelve a utilizar su propia convención de nombres para el control, y después se mete en el nombre del evento.

Esto podría ser contrario al estándar de nomenclatura general, pero siempre ha sido así.

El resultado de esto, es que herramientas como GhostDoc pueden reconocer este formato, y así generar documentación que, sin dejar de genéricos, es más al punto, que si fuera a tratar de deducir el propósito del método por sí solo .

Por ejemplo, el método "controlName_EventName" podría ser documentado como esto:

/// <summary> 
/// Handles the EventName event of the controlName control. 
/// </summary> 
/// <param name="sender">The source of the event.</param> 
/// <param name="e">The <see cref="System.EventArgs"/> instance 
/// containing the event data.</param> 
protected void controlName_EventName(object sender, EventArgs e) 
{ 

en lugar de la misma familia (ya que GhostDoc se encarga de todo lo anterior, estoy ad libbing aquí basado en la experiencia con malos nombres de los métodos):

/// <summary> 
/// Control names the event name. 
/// </summary> 
/// <param name="sender">The sender.</param> 
/// <param name="e">The e.</param> 
protected void controlName_EventName(object sender, EventArgs e) 
{ 
+0

no sabía que los controladores de eventos tuvieran una convención de nomenclatura diferente. Gracias ! – thedrs

1

Porque en ese caso se utilizará el nombre de su control de formulario, ya que es lo que se llama. Debo decir que prefiero de esta manera, ya que me dice el nombre real del control que se utiliza y no una versión renombrada.

1

Te siento. Realmente, yo prefiero un poco la siguiente convención de nomenclatura:

OnselectButtonClick() 
3

No se rompe estrictamente la convención de nomenclatura .Net porque las directrices sólo se aplican a métodos públicos. Sin embargo, podría considerar que rompe el espíritu de las directrices.

1

No golpee la pestaña tan rápido al conectar dichos controladores de eventos;) Meh, todo se genera. Podrían cambiar la carcasa, pero la otra mitad lloraría al respecto. Es una situación de perder y perder para ellos.

Cuestiones relacionadas