Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Monotouch Compiler Directive if debug

In my MonoTouch app, how can I put in a # compiler directive to include code only if in debug mode?

like image 434
Ian Vink Avatar asked Nov 23 '10 02:11

Ian Vink


1 Answers

MonoDevelop by default sets the DEBUG define when you create a solution, so you can use two things: you can use [Conditional ("DEBUG")] attributes on methods that you use to instrument your code and you can use standard if #DEBUGs in your source.

Like this:

[Conditional ("DEBUG")]
void Log (string msg)
{
    Console.WriteLine (msg);
}

void Foo ()
{
    Log ("Start");
    ..
    Log ("End");
}

What is nice about the Conditional attribute is that the compiler will remove the calls at compile time if the switch is not set, and it is prettier than littering your source code with:

#if DEBUG
Console.WriteLine ("start");
#endif
like image 120
miguel.de.icaza Avatar answered Nov 09 '22 11:11

miguel.de.icaza