15

Sono nel bel mezzo di un grande refactoring.Refactoring automatico per aggiungere i nomi dei parametri alle chiamate di metodo

Ho dozzine di metodi, che vengono chiamati tramite parametri posizionali. Ora mi piacerebbe averli chiamati tramite parametri con nome. I metodi esistono in diverse classi non ereditate e hanno lo stesso nome e le loro firme differiscono. Esempio:

Definizioni

public class Foo 
{ 
    public static Foo Create(int count, string name) 
    { 
     ... 
    } 
} 

public class Bar 
{ 
    public static Bar Create(string description, bool yesNo, float factor) 
    { 
     ... 
    } 
} 

E le seguenti chiamate vorrei sostituire, dall'utilizzo

public void CreateSomeObjects() 
{ 
    var foo = Foo.Create(123, "foo"); 
    var bar = Bar.Create("bar", true, 1.23); 
} 

a

public void CreateSomeObjects() 
{ 
    var foo = Foo.Create(count: 123, name: "foo"); 
    var bar = Bar.Create(description: "bar", yesNo: true, factor: 1.23); 
} 

Visual Studio Premium 2013 e ReSharper . Qualche idea su come ottenere questo? (Ho solo bisogno di un suggerimento, nessuna soluzione completa.)

+1

Hai trovato una soluzione? Molte grazie ... – ManOnAMission

+0

Purtroppo no. Il mio attuale approccio è di riscriverlo con [Roslyn] (https://github.com/dotnet/roslyn). Dato che sono solo all'inizio, per ora non inserirò il codice. –

+0

CodeRush sembra essere in grado di inserire parametri con nome (è un menu di scelta rapida che è necessario fare clic manualmente, quindi nessuna soluzione automatizzata). – ManOnAMission

risposta

10

Non sono sicuro di come pratica questo non è che è possibile effettuare le seguenti operazioni utilizzando ReSharper:

  1. Usa "Trova Usi" per ottenere un elenco di tutte le chiamate metodo posizioni.
  2. Per ciascun utilizzo, fare doppio clic per andare al metodo.
  3. Quindi nell'editor di codice, fare clic su un valore di parametro e ReSharper dovrebbe mostrare l'indicatore di azione (una lampadina o un martello sul margine sinistro).
  4. Fare clic sull'indicatore di azione per visualizzare il menu di scelta rapida dell'azione.
  5. Selezionare l'azione "Aggiungi nome argomento" per aggiungere nomi parametro a tutti i parametri.
  6. Ripetere.
+2

Questo è molto più facile di quanto sembri. Ho appena alzato il livello sugli argomenti con nome da avvertire, quindi sul primo argomento di ogni funzione, premo ctl +., Invio, ed è fatto. – fastmultiplication

Problemi correlati