¿Hay alguna forma en C# para marcar una propiedad como determinista?Determinismo de propiedad
La razón por la que pregunto es que a menudo me encuentro a mí mismo declarando una variable local y leyendo una propiedad en ella, en lugar de acceder a la propiedad varias veces.
¿Hay alguna manera de que pueda decorar la propiedad como determinista, de modo que el compilador pueda entonces optimizar los accesos múltiples a esa propiedad? Estoy adivinando en tal escenario que la clase tendría que ser inmutable y decorada como tal.
¿Esto es algo que incluso existe o estoy agarrándome a las pajas?
+1 - Solo una pregunta: si el compilador realiza esta optimización de todos modos, ¿cómo podría explicar los cambios en el objeto en objetos no inmutables, ya sea que provenga del mismo hilo o no? ¿Es posible que hayas validado que la propiedad tiene un costo de propiedad simple en una cantidad muy pequeña, en cuyo caso debería dejar de ser anal al respecto? :) –
@Matt Whitfield: Cuando se optimiza el código, la propiedad simple será internada. Leer la propiedad en realidad no llamará a un comprador de propiedades para devolver el valor, sino que obtendrá el valor directamente, como si estuviera accediendo a una variable pública en la clase. En el código C# obtienes la abstracción y el aislamiento que deseas en el código OOP, pero en el código compilado obtienes la velocidad de las variables públicas. :) – Guffa
gracias - Voy a aceptar esto porque ese comentario que tienes es el que me da el entendimiento que estaba buscando cuando hice la pregunta. –