C'è qualche modo in C# per contrassegnare una proprietà come deterministica?Determinismo proprietà
La ragione per cui chiedo è che spesso mi ritrovo a dichiarare una variabile locale e a leggere una proprietà al suo interno, invece di accedere alla proprietà più volte.
Esiste un modo per decorare la proprietà come deterministica, in modo che il compilatore possa quindi ottimizzare più accessi a tale proprietà? Sto indovinando in un tale scenario che la classe avrebbe bisogno di essere immutabile e decorata come tale.
È qualcosa che esiste anche o sto stringendo le cannucce?
+1 - Solo una domanda: se il compilatore esegue comunque questa ottimizzazione, come considererebbe le modifiche all'oggetto su oggetti non immutabili, indipendentemente dal fatto che fossero dello stesso thread o meno? È possibile che tu abbia appena convalidato che la proprietà ottiene su un semplice costo di proprietà una quantità estremamente piccola, nel qual caso dovrei smettere di essere anale a riguardo? :) –
@ Whit Whitfield: Quando il codice è ottimizzato, la proprietà semplice verrà internata. La lettura della proprietà in realtà non chiama un getter di proprietà per restituire il valore, ma ottiene direttamente il valore, proprio come se si stesse accedendo a una variabile pubblica nella classe. Nel codice C# si ottiene l'astrazione e l'isolamento che si desidera nel codice OOP, ma nel codice compilato si ottiene la velocità delle variabili pubbliche. :) – Guffa
grazie - lo accetterò perché quel commento che hai lì è il bit che mi dà la comprensione che stavo cercando quando ho posto la domanda. –