2010-08-08 13 views
7

In Visual Studio Professional 2010 ogni volta che digitare quanto segue:Visual Studio Professional 2010: Stop "new {" da autocompleting in "nuovo oggetto {" (C#)

new { 

Si passa automaticamente a:

new object { 

C'è un modo per farlo non farlo? "Oggetto" non ha le proprietà dell'oggetto che voglio creare in modo anonimo.

+0

Qual è il primo blocco all'interno? Quando faccio questo in una query LINQ, non ho il completamento automatico, per esempio. –

+0

Sembra che succeda nell'editor di visualizzazione ASP.NET MVC per me. –

+0

Al momento è all'interno di una pagina ASPX: <% = Html.ActionLink ("Blah", "Blah", nuovo {id = 1})%> Anche se ho riscontrato questo problema in vari altri luoghi. – KPthunder

risposta

3

È possibile disattivare IntelliSense quando si digita la parentesi.

Nel menu Strumenti selezionare Opzioni. Quindi, sul lato destro, espandere Editor di testi quindi C# quindi IntelliSense. Rimuovere il { dalla casella di testo sotto il Impegnati digitando i seguenti caratteri:

Si può anche essere necessario deselezionare la Impegnati premendo la barra spaziatrice o prendere l'abitudine di scrivere new{ e basandosi sulla formattazione automatica quando si chiude la parentesi (anche se non ho mai fatto alcuna roba ASPX quindi non so quanto è buona la formattazione automatica rispetto a un normale file di codice.)

+0

Questo influisce su una delle altre funzionalità di completamento automatico? –

+0

Dovrebbe funzionare più o meno lo stesso, solo dovrai premere tab invece di ** {**. Il ** Impegnato premendo la barra spaziatrice ** sarebbe un bel po 'sconvolto per me quindi lascerei quello controllato, appena incluso nella risposta per completezza. – Samuel

4

https://connect.microsoft.com/VisualStudio/feedback/details/584429/autocomplete-on-new-is-interpreted-as-a-new-function-instead-of-anonymous-class

Sono abbastanza sicuro che sia un bug, così sono andato avanti e lo ha riferito. Prima o poi lo avrei fatto :)

Spero che vada bene per te.

+0

Ho sempre pensato che fosse anche un bug. – bkaid

+0

Strano, ho pensato che fosse qualcosa di stupido che dovevo abilitare, come i numeri di linea. Parlando di numeri di riga, perché sono disabilitati di default? – KPthunder

+0

@Rei il secondo caso che hai descritto (nuovo Func) è un comportamento corretto ... non hai dichiarato i parametri di input al lambda, quindi intellisense è ancora in modalità "locate delegate", non in "compose lambda body". –

0

Ho appena preso l'abitudine di digitare "nuovo{}". L'Intellisense non entra nel gioco allora. E dal momento che sto sempre riformattando la pagina comunque con crtl-k; crtl-d, lo spazia in modo corretto più avanti.

Problemi correlati