Una costumbre en VB que C# no nos permite

Esta tarde, un amigo, me comentaba que, que estaba empezando con C#, y se encontraba con que le generaba errores en el designer.cs, sabiendo que viene de VB, me imaginé al momento cuál era su error. Os lo voy a razonar como intenté razonarselo a él.


¿Cómo manejamos un evento en VB?


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


End Sub


Y… ¿en C#?


private void Form1_Load(object sender, EventArgs e)


{


}


¿Cuál es la diferencia?


Espero que hayáis notado que lo que falta es el handles, lo que «une» el método con el evento del control.


Entonces… ¿Dónde se «une» el método con el evento en C#?


En el designer.cs con el que teníamos problemas, esta es la línea que lo demuestra


this.Load += new System.EventHandler(this.Form1_Load);


¿Dónde estan los errores?


Pues que si eliminamos el evento como en VB, en el designer se seguirá apuntando hacia un evento que no existe y eso genera los errores.


¿Cuál es la solución a este problema?


Pues tenemos dos opciones:



  • Elinamos esa línea de código
  • O como deberíamos hacer… eliminamos los eventos desde la ventana de propiedades del diseñador.

Espero que os sea útil 😉

3 thoughts on “Una costumbre en VB que C# no nos permite

  1. yo agregaría una 3ra opcion

    si en VB en AddHandler, y en C# esta el += …
    porque no crear algo parecido al Handles es C# ???

    jejeje los puristas me asesinan si leen esto 😀

    Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *