Domanda

Esiste un componente aggiuntivo di Visual Studio in grado di eseguire il refactoring del metodo di rimozione?
Supponiamo di avere il seguente metodo:

Result DoSomething(parameters)  
{  
    return ComputeResult(parameters);  
}  

Oppure la variante in cui il Risultato è nullo.

Lo scopo del refactoring è sostituire tutte le chiamate a DoSomething con chiamate a ComputeResult o con l'espressione che utilizza i parametri se ComputeResult non è una chiamata al metodo.

È stato utile?

Soluzione

Se ho capito la domanda, Resharper chiama questo "metodo in linea" - Ctrl - R + IO

Altri suggerimenti

Lo farei nel modo più semplice:

  1. rinominare il metodo ComputeResult in ComputeResultX
  2. rinominare il metodo DoSomething in ComputeResult
  3. rimuovere il metodo DoSomething (che ora è ComputeResult)
  4. rinominare il metodo ComputeResultX in ComputeResult

Forse VS mostrerà qualche conflitto a causa dell'ultima ridenominazione, ma ignoralo.

Per "rinominare" intendo:sovrascrivere il nome del metodo e successivamente utilizzare il menu a discesa (Shift+Alt+F10) e selezionare "rinomina".Sostituirà tutte le occorrenze con il nuovo nome.

Sono disponibili alcuni prodotti per aggiungere opzioni di refactoring extra a Visual Studio 2005 e 2008, alcuni dei migliori sono Rifattorizzare!Pro E Riaffilatore.

Per quanto riguarda il metodo di rimozione, nel libro canonico Refactoring è presente una descrizione su come eseguire questa operazione in modo incrementale.

Personalmente, seguo uno schema in questo senso (supponiamo che la compilazione e l'esecuzione di unit test avvengano tra ogni passaggio):

  1. Crea il nuovo metodo
  2. Rimuovi il corpo del vecchio metodo, modificalo per chiamare il nuovo metodo
  3. Cerca tutti i riferimenti al vecchio metodo (fai clic con il pulsante destro del mouse sul nome del metodo e seleziona "Trova tutti i riferimenti"), modificali in chiamate al nuovo metodo
  4. Contrassegna il vecchio metodo come [Obsoleto] (le chiamate ad esso ora verranno visualizzate come avvisi durante la compilazione)
  5. Elimina il vecchio metodo

Quando si tratta di refactoring del genere, provalo ReSharper.

Basta fare clic con il pulsante destro del mouse sul nome del metodo, fare clic su "Trova utilizzi" ed eseguire il refactoring finché non riesce a trovare alcun riferimento.

E come menzionato da dlamblin, la versione più recente di ReSharper ha la possibilità di incorporare un metodo.Dovrebbe fare proprio quello di cui hai bisogno.

ReSharper è sicuramente il plug-in VS 2008 da avere per il refactoring.Tuttavia non esegue questa forma di refactoring in un unico passaggio;dovrai Refactoring->rinominare DoSomething in ComputeResult e ignorare il conflitto con il vero ComputeResult.Quindi elimina la definizione che era DoSomething.È quasi un passo.

Tuttavia forse è possibile fai un passo.Se ho letto bene.

Puoi anche fare clic con il pulsante destro del mouse sul nome del metodo e fare clic su "Trova tutti i riferimenti" in Visual Studio.

Personalmente farei semplicemente a CTRL + SPOSTARE + H A Find & Replace

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top