Se si sta eseguendo una build in cui è definito il simbolo DEBUG, il compilatore sta eseguendo l'analisi statica del codice presumendo che il primo ritorno è in vigore e non escluso. Quindi, il codice sarebbe visto come:
return thisVariable;
return thatVariable;
In tale contesto è evidente il secondo return
dichiarazione non sarà raggiunto in un tale accumulo. Quando si passa a una configurazione di build in cui DEBUG non è definito, non si dovrebbe vedere l'avviso.
Considerare l'utilizzo di #else
(docs) per evitare la seconda istruzione return
quando DEBUG è definito.
C'è anche questo bocconcino rilevanti da here:
Anche se il compilatore non dispone di un preprocessore separata, i direttive descritte in questa sezione [C# direttive del preprocessore] sono trattati come se ci fosse uno.
In altre parole, l'analisi statica del compilatore C# non è a conoscenza delle direttive del preprocessore; sono già stati elaborati a quel punto e l'analisi statica vede solo il codice che ha generato dalla fase di pre-elaborazione.
fonte
2016-02-12 13:33:21
In quale configurazione di soluzione si dispone di Visual Studio al momento? – Maarten
Questo andrà via quando lo metti in rilascio –
Aggiungi un #else prima del 2 ° return e #endif dopo –