Riguarda i rientri
Non riguarda le parentesi, riguarda il rientro e l'allineamento verticale.
Non rientrato
puoi mettere parentesi sulla stessa riga quando il rientro non è in gioco.
Esempio nell'espressione lambda:
list.ForEach( a => { a.Init(); a.DoSomething(); a.Complete(); });
Esempio di dichiarazione di un'interfaccia vuota, come questa trovata nel CLR .NET:
interface IRequiresSessionState {}
Rientri semplici
Ma se prevedi di indentare qualcosa, la regola di identificazione dice che le cose che iniziano e terminano un blocco di codice dovrebbero essere rientrate in modo simile, e le cose all'interno del blocco dovrebbero essere un livello più profondo, come questo:
void DoSomething() {
Code();
}
L'idea è che puoi tracciare l'inizio e la fine del blocco ingrandendolo verticalmente.
Non lo faresti:
void DoSomething() {
Code();
}
o questo:
void DoSomething() {
Code();
}
perché non puoi usare l'occhio per trovare l'inizio che va alla fine.
Doppie indentazioni
Detto questo, puoi chiudere due blocchi sulla stessa riga, se hai aperto due blocchi sulla stessa linea, come in questo esempio di Javascript molto comune:
document.ready(function() {
DoSomething();
});
o
while(flag) { for (i=1; i<10; i++) {
DoSomething();
}};
... anche se francamente non penso che utilizzerei mai un costrutto come quello.