Articles of clr

¿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?

explícitamente emitidos parámetros de tipo genérico a cualquier interfaz

En Preguntas frecuentes sobre generics: Las mejores prácticas dice: El comstackdor le permitirá emitir explícitamente parámetros de tipo genérico a cualquier interfaz, pero no a una clase: interface ISomeInterface {…} class SomeClass {…} class MyClass { void SomeMethod(T t) { ISomeInterface obj1 = (ISomeInterface)t;//Compiles SomeClass obj2 = (SomeClass)t; //Does not compile } } Veo una […]

sizeof (int) en x64?

Cuando hago sizeof(int) en mi proyecto C # .NET obtengo un valor de retorno de 4. Establecí el tipo de proyecto en x64, entonces ¿por qué dice 4 en lugar de 8? ¿Esto es porque estoy ejecutando código administrado?

¿Lanzar lo mismo que convertir?

En el libro Learning C # de Jesse Liberty, dice: “Los objetos de un tipo se pueden convertir en objetos de otro tipo. Esto se conoce como casting“. Si investigas el IL generado a partir del código siguiente, puedes ver claramente que la asignación casted no está haciendo lo mismo que la asignación convertida. En […]

¿Deberíamos siempre incluir un constructor predeterminado en la clase?

Un colega me ha hecho esta pregunta, ¿deberíamos incluir siempre un constructor predeterminado en una clase? Si es así, ¿por qué? Si no, ¿por qué no? Ejemplo public class Foo { Foo() { } Foo(int x, int y) { … } } También estoy interesado en obtener algunas luces sobre esto de expertos.

¿Por qué el tamaño de la stack en C # es exactamente 1 MB?

Las PC actuales tienen una gran cantidad de RAM física, pero aún así, el tamaño de stack de C # es de solo 1 MB para procesos de 32 bits y 4 MB para procesos de 64 bits ( Capacidad de stack en C # ). ¿Por qué el tamaño de la stack en CLR […]