Questa è una regola di stile tra molte e non è necessariamente la regola più importante di tutte le possibili regole che potresti prendere in considerazione. Il tuo esempio, dal momento che include un int, non è super convincente, ma potresti sicuramente avere un oggetto costoso da costruire all'interno di quel ciclo e forse un buon argomento per costruire l'oggetto al di fuori del ciclo. Tuttavia, ciò non lo rende un buon argomento contro questa regola sin dall'inizio, ci sono tonnellate di altri posti che potrebbero applicare che non comportano la costruzione di oggetti costosi in un ciclo e, in secondo luogo, un buon ottimizzatore (e hai taggato C #, quindi hai un buon ottimizzatore) può sollevare l'inizializzazione fuori dal ciclo.
Il vero motivo di questa regola è anche il motivo per cui non vedi perché è una regola. Le persone scrivevano funzioni lunghe centinaia, persino migliaia di righe e le scrivevano in editor di testo semplice (pensa Notepad) senza il tipo di supporto fornito da Visual Studio. In quell'ambiente, dichiarare una variabile a centinaia di righe di distanza da dove veniva usata significava che la persona leggeva
if (flag) limit += factor;
non aveva molti indizi su cosa fossero bandiera, limite e fattore. Convenzioni di denominazione come la notazione ungherese sono state adottate per aiutare in questo, così come regole come dichiarare cose vicine a dove vengono utilizzate. Ovviamente, in questi giorni, si tratta di refactoring e le funzioni sono generalmente lunghe meno di una pagina, il che rende difficile ottenere molta distanza tra dove vengono dichiarate le cose e dove vengono utilizzate. Stai operando in un intervallo compreso tra 0 e 20 e stai scherzando sul fatto che forse 7 è ok in questo caso particolare, mentre il ragazzo che ha fatto la regola avrebbe ADORATO ottenere 7 righe di distanza e stava cercando di parlare di qualcuno da 700. E poi Inoltre, in Visual Studio, puoi passare con il mouse su qualsiasi cosa e vedere il suo tipo, è una variabile membro e così via. Ciò significa che la necessità di vedere la riga che la dichiara è ridotta.
È ancora una regola ragionevolmente buona, una che in realtà è abbastanza difficile da infrangere in questi giorni e una che nessuno ha mai sostenuto come motivo per scrivere codice lento. Sii sensibile, soprattutto.