Criando uma sub condicional - Excluindo em run-time
Um recurso muito interessante no .NET é o atributo Conditional, que pode ser aplicado em SUBs da seguinte forma :
<Conditional("LOG")> Sub teste()
End Sub
LOG é uma constante de compilação, o nome inventei, poderia ser qualquer coisa. Isso permite que essa sub faça ou não parte do código dependendo da existência desta constante.
A complexidade disso está no fato de que se a sub fosse simplesmente retirada do código, todas as chamadas dela falhariam. Com o atributo Conditional não apenas a sub é eliminada, mas todas as chamadas a ela.
A presença ou não da sub é controlada pela constante LOG. Para definir esta constante devemos entrar nas propriedades do projeto, Configuration Properties->Build
Na parte inferior da tela encontramos uma caixa chamada Custom Constants, na qual podemos definir a constante : LOG=true
Podemos manter essa constante enquanto desenvolvemos e retira-la em run-time, por exemplo. Muitas outras alternativas podem ser imaginadas.