¿Por qué tengo que especificar el espacio de nombres al elegir el formulario de inicio?

No pude configurar mi nuevo formulario como formulario de inicio, se quejó de que no existía. Pero después de algunos minutos intenté escribir "Namespace.NewForm" y funcionó.

En mi otro proyecto, el inicio se establece así:

        Application.Run(new MyForm());

¿Por qué tuve que especificar el espacio de nombres al cambiar la forma de inicio en este proyecto?

preguntado el 08 de noviembre de 11 a las 15:11

Esto significa que el espacio de nombres que contiene MyForm es diferente al espacio de nombres que contiene el Programa. En otras palabras, normalmente no sería necesario y, de forma predeterminada, un proyecto WinForm colocaría ambos en el mismo espacio de nombres. -

Rock, eso fue todo, ¡se olvidó de comprobarlo! -

3 Respuestas

Presumiblemente porque no tenías un using directiva para ello:

using SomeNamespace;

...

Application.Run(new SomeForm());

No hay nada particularmente diferente en el código que se usa para llamar Application.Run - es solo código C # normal, siguiendo las reglas normales de C #.

respondido 08 nov., 11:19

Utilice una directiva using para no tener que calificar completamente los tipos dentro del espacio de nombres en cuestión.

using MyNameSpace;

También vale la pena señalar que el uso de directivas en C # no le da acceso a espacios de nombres anidados en el espacio de nombres que especifique (en caso de que se lo pregunte). Esto significa que

using System;

no te da acceso a System.IO

respondido 08 nov., 11:19

Parece que hay más contexto aquí del que estás compartiendo. Independientemente de lo que esté haciendo, cualquier lugar al que haga referencia MyForm deberá poder resolver esa referencia a una clase completamente calificada (incluido el espacio de nombres). Esto significa que necesitará estar completamente calificado o necesitará que su espacio de nombres esté incluido en el using declaraciones en la parte superior del archivo (y ser inequívoco).

¿Tu versión "funcional" ya tiene la using directiva y la versión "que no funciona" simplemente no lo hace? ¿Sus versiones intentan establecer el formulario de inicio en diferentes lugares?

Sospecho que la versión "funcional" tiene la using directiva ya está en su lugar y que, por la razón que sea, no está en su lugar en la versión "no funcional".

respondido 08 nov., 11:19

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.