2009-03-11 11 views
17

C'è un modo per disattivare l'opzione off per solo una singola riga di codice?Opzione di rotazione VB.NET Rigorosa in linea

Sto facendo alcuni lavori di manutenzione e ho bisogno di "imbrogliare" in un unico punto e non voglio abbassare lo standard per l'intero file.

+0

Perché pensi che sia necessario "imbrogliare"? Qualsiasi casting possibile in modalità non rigida può anche essere eseguito in modalità rigorosa. Il compilatore crea solo il codice per te in modalità non rigida. – Guffa

+2

@Guffa: che dire del late binding agli oggetti COM? Un semplice '[nostrict] someComObject.someMethod' sarebbe molto più leggibile rispetto all'utilizzo del reflection. (E sì, ci sono casi in cui l'associazione tardiva è più appropriata rispetto alla creazione di DLL interop.) – Heinzi

risposta

16

Purtroppo, non è possibile per una singola riga di codice in un file. Vedi lo MSDN docs.

D'altra parte, potresti probabilmente rendere la singola linea di codice una funzione separata, metterla in un nuovo file con attributi di classe parziali e mettere Option Strict Off su quel file. Il compilatore IL probabilmente inserirà comunque la tua funzione, quindi sarà equivalente in velocità, ma sarà brutto da un punto di vista pratico.

+0

Grazie Mike. Questo è esattamente quello che ho fatto. Sì, è brutto, ma stabile. – Jeff

4

Poiché deve apparire nella sezione dichiarazioni del modulo, non è possibile utilizzare option strict nel mezzo del codice. Ma può essere fatto su una base per modulo che potrebbe aiutare un po '.

E non c'è menzione nel libro "Visual Basic 2005 in poche parole" che suggerisce che esiste un altro metodo per attivarlo o disattivarlo.

-2

Un paio di altre idee:

  • è possibile codificare con esso in gran parte fuori e accenderlo ora e poi per assicurarsi che il resto del codice è conforme
  • è possibile configurare in modo che Option Strict è ON per build di release ma OFF per build di debug.
+2

Joel: -1 perché a) non sarà d'aiuto in questo caso eb) è un'idea orrenda. Non è affatto la stessa cosa che accendere le ottimizzazioni in una build di rilascio. –