Un po' di tempo fa avevo trovato un bug sul refactoring di VS2005.
Se infatti provate a fare un refactoring di “str“ in questo frammento di codice:
#define Extra
...
#if Extra
string str = "Hello, world";
#else
string str = "Hello, world from Raffaele";
#endif
il risultato è che solo il codice nella region “attiva” viene cambiato mentre quella in grigio perchè disattiva rimane esclusa dal refactoring.
Se si usano le region in modo un po' pesante, questo rende inutilizzabile il refactoring per cui lo considero un bug molto grave.
La brutta notizia è che non verrà fissato. Sebbene mi venga riconosciuto che è un bug, non è possibile fissarlo per come è strutturato ad oggi il meccanismo di refactoring (che agisce solo sul codice che viene compilato).
E poi mi dite che sono esagerato ad attendere Orcas con ansia ...