C'è una parola chiave readonly
in C# ma finora possiamo applicarla solo ai campi, non ai locali o ai parametri.
Spesso in Java la parola chiave final
viene utilizzata abitualmente come una questione di stile, per semplificare la chiusura dei valori nelle classi interne anonime. Ma quel problema non esiste in C# come metodi anonimi/lambda può chiudere le variabili modificabili.
Anche strumenti come Resharper possono visualizzare variabili/parametri mutati in un colore diverso, in modo da poter vedere le "complicazioni" nel metodo a colpo d'occhio. Lo uso per far risaltare i nomi mutati in grassetto verde o qualcosa del genere!
Questo non vuol dire che C# stesso non sarebbe migliorato da molte altre funzionalità come uno readonly
ampiamente applicabile per aiutare con l'immutabilità dichiarata. Ma se hai metodi brevi e Resharper per evidenziare le cose per te, allora non hai bisogno di dichiarare manualmente le cose come final/readonly/const (a seconda della lingua). L'IDE ti tiene traccia di te.
Questo ha più senso: come hanno scoperto i codificatori Java, la maggior parte delle "variabili" non sono affatto variabili. Ma se devi dichiararlo aggiungendo final
a tutto, c'è molto rumore di parole chiave extra nel tuo codice. Avrebbe più senso che il valore predefinito fosse final
e che fosse necessario creare una parola chiave per rendere le cose mutable
. Funziona così in F #.
fonte
2010-04-16 07:24:34
perché non provate con la parola chiave const – KhanS
@KahnS - perché l'utilizzo di tale parametro non verrà nemmeno compilato. – Oded
Se mi chiedessero quale caratteristica del C++ mi manca di più in C#, sarebbero cost metodi e parametri. – Gorpik