none
Creación de instancia de los formularios C# RRS feed

  • Pregunta

  • Buenos días foro, se que la pregunta es un tanto digamos quizás tonta, estoy tratando de hacer la transición desde vb .net hasta c#, hay cosas que todavía no me acostumbro o no conozco del todo y me gustaría que me ayudaran a aclarar:

    1. Por si en vb .net utilizo este código para cargar un segundo formulario 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Form2.Show()
    End Sub

    en C# debo hacerlo creando antes una instancia que realmente ya existe

     private void button1_Click(object sender, EventArgs e)
                {
                Form2 frm = new Form2();
                frm.Show();
                }

    Además a lo mejor sea un mal habito, pero en 

    vb .net los paréntesis () al final de los métodos de los objetos se completan solos, algo que no sucede en C#

    Para finalizar si alguno conoce un buen link para seguir ampliando mis pocos de conocimientos en cuanto a Visual C# se refiere se lo voy a agradecer. feliz resto del día.

     

    Arismendy Rodríguez

    viernes, 1 de abril de 2016 13:59

Todas las respuestas

  • ¿De dónde saca la idea de que la instancia ya existe?  Eso no es cierto.  Lo que pasa es que VB.net (y el clásico también) automágicamente crean la instancia cuando ven NombreDeClase.Show.  Lo que hace el compilador es crear una variable global llamada igual que la clase y asigna la instancia a esa variable.  En C# no existe tal magia.

    ¿Los paréntesis?  Son requeridos por el lenguaje.  No hay más que decir.  En VB son opcionales pero la gente de Visual Studio pensó que sería bonito si el editor agregara los paréntesis para una vista más consistente del código.

    Hay muchos tutoriales de C# en línea.  Yo personalmente aprendí hace mucho usando MSDN.


    Jose R. MCP
    Code Samples

    viernes, 1 de abril de 2016 14:03
    Moderador
  • Saludos Mendy,

    Mira puedes mostrar una instancia de un formulario directamente asi:

    private void button1_Click(object sender, EventArgs e)
                {
                new Form2().Show();
                }


    viernes, 1 de abril de 2016 14:38