BUG: Tumbar el diseñador visual (I)

Vamos a tumbar el diseñador visual. Es muy sencillo. Creemos un proyecto Windows Forms en C++/CLI y pongamos en la ficha principal dos o tres componentes. Cambiemos entre vista de ficha y vista de código. Hasta ahora todo bien.


Ahora creemos un método como el ejemplo:


        void Hola(void)
        { 
        }


Volvamos a cambiar de vista de código a vista de ficha. Todo sigue bien.



Añadamos un nuevo método (sin borrar el anterior):


        int Hola(void
        { 
            return 3; 
        }


Ahora cambiemos de nuevo a vista de ficha.


¡Tachán!



Los controles han desaparecido. No importa lo compleja o sencilla que sea, los controles han desaparecido.


Volvamos a vista de código y comentemos cualquiera de los dos bloques añadidos.


¡Tachán!


Todo vuelve a la normalidad. Menos mal.


Antes de explicar nada, repitamos pero con ejemplo en C#.


Creemos una aplicación en C#, pongamos unos controles en la ficha y veamos el código. Añadamos lo siguiente:



public void Hola()
{
}


public int Hola()
{
 
return 3;
}


Y cambiemos a vista de ficha: no ocurre nada, la ficha se ve perfectamente.


Por lo tanto se trata de un bug de editor de fichas del Visual Studio trabajando en C++/CLI.


Explicación
Hemos cometido el mismo error en ambos proyectos, es decir, hemos definido dos métodos sobrecargados cuya única diferencia es el valor de retorno, y eso no se puede hacer ni en C# ni en C++ ni en C++/CLI.


Pero eso no quita que el diseñador visual falle. De hecho el de C# no lo hace, aunque el código sea realmente incorrecto.


Quien quiera jugar con el proyecto, lo puede obtener de aquí.

Deja un comentario

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