Articles of clr

scope variable en bloques de instrucciones

for (int i = 0; i < 10; i++) { Foo(); } int i = 10; // error, 'i' already exists —————————————- for (int i = 0; i < 10; i++) { Foo(); } i = 10; // error, 'i' doesn't exist Según mi comprensión del scope, el primer ejemplo debería estar bien. El hecho […]

Iterador asincrónico Tarea <IEnumerable >

Estoy tratando de implementar una función asíncrona que devuelve un iterador. La idea es la siguiente: private async Task<IEnumerable> TestAsync(string testString) { foreach (char c in testString.ToCharArray()) { // do other work yield return c; } } Sin embargo, hay un mensaje de error que Task<IEnumerable> que la función no puede ser un bloque iterador […]

Cómo depurar errores System.TypeLoadException en .NET?

Recibo el siguiente error en uno de los ensamblados a los que me refiero: Could not load type ‘System.Func`2’ from assembly ‘MyAssembly, … Seré sincero, no creo poder recordar la última vez que vi un error System.TypeLoadException, o si lo vi, la solución era obvia. Mi primer instinto fue ver lo que MSDN tenía que […]

llamar al código administrado desde un código no administrado

Quiero llamar a mi código .NET desde C ++ no administrado. El punto de entrada de mi proceso está basado en .NET, así que no tengo que preocuparme por alojar el CLR. Sé que se puede hacer utilizando contenedores COM para objetos .NET, pero me gustaría acceder a métodos estáticos individuales de clases administradas, por […]

¿Cómo funciona CorFlags.exe / 32BIT +?

Supongo que mi pregunta es sobre el Cargador CLR . Quiero entender la mecánica detrás de la funcionalidad CorFlags.exe /32BIT+ . Sabemos que cuando uno inicia un ensamblado comstackdo con el indicador Any CPU flag en Windows de 64 bits, comienza como un proceso de 64 bits. Si uno ejecuta CorFlags /32BIT+ en ese ensamblaje, […]

¿El .NET CLR JIT comstack todos los métodos, todo el tiempo?

Sé que Java’s HotSpot JIT algunas veces omitirá la comstackción JIT de un método si espera que la sobrecarga de la comstackción sea menor que la sobrecarga de ejecutar el método en modo interpretado. ¿El CLR de .NET funciona en base a una heurística similar?

¿Cuántos objetos String se crearán cuando se use un signo más?

¿Cuántos objetos String se crearán cuando se usa un signo más en el código siguiente? String result = “1” + “2” + “3” + “4”; Si fuera el siguiente, habría dicho tres objetos String: “1”, “2”, “12”. String result = “1” + “2”; También sé que los objetos String se almacenan en caché en el […]

Equivalente de cargadores de clase en .NET

¿Alguien sabe si es posible definir el equivalente de un “cargador de clases personalizado de Java” en .NET? Para dar un poco de historia: Estoy en el proceso de desarrollar un nuevo lenguaje de progtwigción que apunta al CLR, llamado “Liberty”. Una de las características del lenguaje es su capacidad para definir “constructores de tipo”, […]

¿Cómo se implementa GetHashCode () para Int32?

He estado buscando por todo el lugar, pero no puedo encontrar nada. ¿Alguien puede arrojar algo de luz sobre esto?

¿Por qué los tipos de valores se almacenan en Stacks?

¿Por qué C # (.Net) prefiere la stack para almacenar tipos de valores? ¿Cuál es la razón principal detrás de este diseño? ¿Es porque las operaciones de lectura / escritura en la stack aprovechan mejor el procesador de la máquina? Además, tal vez puedas justificar por qué otros no?