Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

171
Vistas
Alguien sabe exactamente cómo IL/CLR genera funciones locales C#7

https://www.infoworld.com/article/3182416/c-7-in-depth-exploring-local-functions.html

Realmente necesito saber exactamente cómo se supone que deben ser las funciones locales siguiendo el código.

Soy 0% Código IL/Experiencia MSIL.

 public static void Display(string str) { int ctr = 5; DisplayText(); void DisplayText () { for(int i = 0; i < ctr; i++) Console.WriteLine(str); } }

Pregunta que necesito saber aquí del código anterior:

  1. Si llamamos a la función principal Display() , ¿la función local DisplayText() siempre se genera cuando se llama a la principal? ¿O se creó como una función local falsa en C# pero en MSIL se generó como una función global?
  2. ¿En el método de expresión lamda? hace lo mismo arriba?
  3. ¿Es seguro depender de las funciones locales? o no lo usaremos de todos modos. (rendimiento tal vez idk )

Editar: - Creo que Propiedades locales (que aún no existen o tal vez ...). es útil también a veces. que puede tener algún cálculo en el mismo método que una propiedad local. como ejemplo anterior pero DisplayText son propiedad. Ojalá lo agreguen también.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

CIL y el tiempo de ejecución no tienen el concepto de una función local, sino que el compilador de C# lo traduce a un método normal con visibilidad privada y, potencialmente, una clase/estructura utilizada para compartir el estado con el método de declaración. Puede ver esto por sí mismo compilando el código y luego descompilando el ensamblado, o usando un sitio como SharpLab.io .

Las expresiones lambda y los métodos anónimos son muy similares, excepto que necesitan proporcionar un delegado que puede limitar las oportunidades de optimización.

El compilador se esfuerza mucho en optimizar el código generado, no esperaría que los métodos locales afecten el rendimiento mucho más de lo que obtendría con cualquier otro método. Le sugiero que se concentre más en cómo afecta la capacidad de mantenimiento, al menos hasta que pueda identificar un problema de rendimiento real mediante la creación de perfiles.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda