6

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

Ian Vink
  • 66,960
  • 104
  • 341
  • 555

1 Answers1

12

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
miguel.de.icaza
  • 32,654
  • 6
  • 58
  • 76
  • Can stick this definition of Log in the top of my namespace? Or does it have to be a method on a class? – oivvio Feb 08 '12 at 09:27