ya que nuevas instancias de los tipos de valor se crean cada vez que se pasan como argumentos, empecé a pensar en escenarios en los que utilizan los ref
o out
palabras clave pueden mostrar una mejora sustancial del rendimiento.¿Beneficio de los tipos de valor sobre los tipos de referencia?
Después de un tiempo me di cuenta que mientras veo el déficit de la utilización de los tipos de valor que no sabía de ninguna ventaja.
Así que mi pregunta es bastante simple: ¿cuál es el propósito de tener tipos de valores? ¿Qué ganamos copiando una estructura en lugar de simplemente crear una nueva referencia a ella?
Me parece que sería mucho más fácil tener sólo los tipos de referencia como en Java.
Editar: Sólo para aclarar esto, no me refiero a los tipos de valor menor que 8 bytes (tamaño máximo de una referencia), sino más bien los tipos de valores que son 8 bytes o más. Por ejemplo, la estructura Rectangle
que contiene cuatro valores int
.
¿Realmente Java solo tiene tipos de referencia? –
¿Cuántos bytes ocupa una matriz de un millón de bytes si son tipos de valor? ¿Cuántos ocupa si son tipos de referencia? –
Sí. Esto en realidad surge a veces como un problema. Incluso DateTime es un objeto. – usr