devxlogo

Exclude code portions with the Conditional attribute

Exclude code portions with the Conditional attribute

VB developers have always used the #IF compiler directive to include or esclude portions of code from the application. The problem with this directive is that you can easily exclude a procedure with a single directive, but it isn’t easy to discard all the calls to that procedure (which would raise a compilation error if you discard the target procedure).

VB.NET gives you a great alternative by means of the Conditional attribute. If you mark a procedure with this attribute the procedure itself will NOT be discarded, but all the calls to it will:

 Sub LogMsg(ByVal MsgText As String)    Console.WriteLine(MsgText)End SubSub TestConditionalAttribute()    LogMsg("Program is starting")    ' ..    LogMsg("Program is ending")End Sub

You can define compilation constants – LOG in the above case – in the Build page of the Project Properties dialog box. You can also use the already-defined TRACE and DEBUG compilation constants. Because the compiler can drop all the calls to the target method- LogMsg, in precedingvious example – the Conditional attribute can only work only with procedures that don’t return a value. If your programming logic requires that a value be returned to the caller, you can use ByRef arguments.

devx-admin

Share the Post: