Ecco una soluzione più robusta utilizzando Visual Studio senza attrezzi 3rd party:
1. Per tutti, tranne post/pre-fix di incremento e Shift Assegnazioni:
(^|[^\w.])MyVariable\s*([\+\-\*/%&|\^]|)=[\w\s]
2. Per Incrementi Post Incremento/Pre-fix e assegnazioni di spostamento:
((^|[^\w.])MyVariable\s*(\+\+|--)|(\+\+|--)\s*MyVariable[^\w.]|(^|[^\w.])MyVariable\s*(<<|>>)=)
3. Per Out/Ref Parametri (N/A per Beni):
(^|[^\w.])(out|ref)\s+MyVariable[^\w.]
avvertimenti:
- C# .NET solo.
- Solo Visual Studio 2012+.
- Non funziona se "=" è seguito da un EOL.
- Non funziona se "MyVariable" è seguito da un EOL.
- A seconda del punto di partenza e dell'ambito del Trova e dell'ambito della variabile/Proprietà, è possibile trovare più/meno riferimenti del necessario. In caso di dubbio, errore sul lato di "altro", in modo da non perdere nulla.
- Non funziona per "." - Variabili/Proprietà con prefisso. 6.1. A meno che non lo includiate come parte di "MyVariable" (cioè "MyStructVariable.MyStructField" o "MyObjectVariable.MyObjectField") ma rischi di trovare troppi riferimenti poiché potrebbero esserci altre Struct o Variabili oggetto utilizzate per effettuare assegnazioni allo stesso Struct o Campo o proprietà dell'oggetto.
Cosa intendi per "variabile"? Più specificamente, stai includendo campi e proprietà o ti riferisci in modo specifico alle variabili locali del metodo? –
@dotnetdev: Suggerisco di: a) rimuovere "o ottenuto" dalla domanda o b) cambiandolo per dire "imposta solo o ottenuto solo" rispetto a "impostato o ottenuto". Come è, la tua domanda (secondo l'inglese e le regole grammaticali di programmazione) significa che non ti importa se i riferimenti di lettura sono trovati anche * in aggiunta * per scrivere riferimenti (nel qual caso potresti semplicemente usare la funzione Trova tutti i riferimenti integrata di VS) . Sono abbastanza sicuro che stai cercando un modo per trovare i riferimenti di scrittura * solo *. – Tom