es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿No funciona la sugerencia de código en directo?

Vi una nueva característica, las Declaraciones de nivel superior, que simplifica el punto de entrada de una aplicación de consola.

En Microsoft Docs

Sin embargo, hay una cosa simple que no puedo obtener sugerencias para: Usar para espacios de nombres fuera de este proyecto.

Después de agregar las referencias en el .csproj de la aplicación de consola, normalmente puedo agregar mi “using” en cualquier clase que cree:

using MyNameSpace.IsThis;

Escribir Myname… hará que Omnisharp me sugiera el espacio de nombres.

Pero no en “Main”. ¿Es esto un error en C# o en el compilador en vivo? Soy capaz de agregar el “using”.

Y curiosamente, si estoy usando un espacio de nombres dentro del mismo proyecto, obtengo la sugerencia mientras escribo.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    No es un error, sino más bien una limitación de la función Top level statements en .NET 6.0. Según los documentos de Microsoft, “las directivas ‘using’ solo están permitidas en la parte superior de un archivo, no dentro de métodos o dentro de las {} de una declaración de clase o estructura”. Esto significa que aunque puedes agregar directivas ‘using’ en un archivo de declaración de nivel superior, no puedes hacerlo dentro del método Main en sí, ya que no está en el nivel superior del archivo.

    Para solucionar esta limitación, podrías mover tus directivas ‘using’ al principio del archivo, o agregarlas directamente al archivo Program.cs, que se genera automáticamente al crear un nuevo proyecto de aplicación de consola en Visual Studio. Alternativamente, podrías usar un archivo separado para tus directivas ‘using’ y hacer referencia a él en tu archivo de declaración de nivel superior utilizando la directiva #r.

    Cabe destacar que esta limitación podría ser abordada en futuras versiones de C# o .NET, por lo que siempre es una buena idea estar al día con las últimas noticias y avances en tecnología.

Comments are closed.