2010-07-08 14 views
10

C'è qualche modo per far sì che l'intellisense VS 2008 sia impostato su Proprietà su Classi in caso di collisione di nomi?Impostazioni di priorità di Intellisense per Visual Studio 2008

Esempio:

All'interno del mio ambito mi hanno una proprietà Foo, ma sono anche utilizzando una classe Foo. Quando scrivo il codice, se inizio a digitare Fo, VS2008 intellisense penserà che intendo la classe Foo. Voglio che pensi che intendo la proprietà Foo invece.

+1

100 taglie per il più fastidioso problema della mia giornata. Perché la priorità è nell'ordine sbagliato quando ho una proprietà con lo stesso nome della classe, quando la digito e premo '.' it ** auto-completa con il nome completo della classe **, cioè I * non può * usare più la proprietà senza cancellare tutto ciò che sh * t VS ha appena aggiunto (premendo ctrl + z, quindi backspace, quindi '.' di nuovo). Questo comportamento si verifica anche dopo aver rimosso '.' dalla casella di opzione" impegnato dopo aver premuto i seguenti caratteri ". Questo problema sembra certamente minore, fino a quando ti capita 200 volte in un giorno. –

+0

assegnerò la taglia a chiunque conosca un modo per fermare quel problema specifico (non necessariamente modificando la priorità delle categorie). –

+2

(in C#) È possibile creare alias della classe: 'utilizzando FooClass = Foo;' Se si è all'interno di un membro di istanza, è possibile fare riferimento alla proprietà Foo come 'this.Foo'. A livello di classe, deve essere pienamente qualificato. Questo è il motivo per cui le linee guida di progettazione di Microsoft suggeriscono che non si definiscono le proprietà o i metodi come il tipo restituito. –

risposta

3

Purtroppo questo non è possibile. La personalizzazione della priorità delle categorie di valore come classi/proprietà non è supportata

1

Non esiste alcuna possibilità in VS2010 e nemmeno in ReSharper 5.0 per risolvere questo problema. Non sarà una funzionalità di ReSharper 6.0, secondo JetBrains. Io uso un nome diverso per la proprietà, quando inizia a rendermi aggressivo e refactoring dopo che ho fatto la maggior parte del lavoro.

Aggiornamento:

Ho segnalato il problema al JetBrains qualche tempo fa e ho appena ricevuto un'email che la funzione è stata aggiunta e sarà disponibile nella versione 6.1. Quindi buone notizie per gli utenti di ReSharper su questo!

http://youtrack.jetbrains.net/issue/RSRP-273067?projectKey=RSRP

+0

+1 per suggerire il temuto refactoring. Eviterei di usare lo stesso nome su una proprietà e una classe in primo luogo. – WEFX

0

Stavo pensando la stessa cosa oggi.

Mentre la funzionalità non è in VS vaniglia, è abbastanza possibile modificare del codice per aggiungere questa funzionalità. Ad esempio, XAML Presenter, probabilmente chiamato come il componente del presentatore che devi modificare, ha qualcosa di simile. XAML Presenter

Si restringe per spazio dei nomi e per tipo di attributo. Fondamentalmente, prenderò la lista che la Fonte di Completamento Intellisense dà e ordina la lista. Sembra abbastanza semplice.

Più impegnativo è l'implementazione dei controlli dell'interfaccia utente. Odio progettare i controlli dell'interfaccia utente. . .

Edit:

Tuttavia, non mi forsee un modo per farlo senza rompere le caratteristiche Intelllisense di ReSharper.

0

Utilizzare VS 2010, suppongo? Non riesco a vedere quale situazione farebbe VS per mettere le classi sulle proprietà, però.

Problemi correlati