BUG: Tumbar el diseñador visual (I)

Published 9/7/2007 13:05 | Rafael Ontivero

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í.

Archivado en: ,,
Comparte este post: