What is the alternative to having code with conditional compilation in C#?
I have a class that has lots of code that is based on # ifdef .. After sometime my code is unreadable.
Looking for refactoring techniques to use for better readability and maintenance of code with many #if
defs
An alternative is to use the ConditionalAttribute. The conditional attribute works in a similar way.
#define TRACE_ON
using System;
using System.Diagnostics;
public class Trace
{
[Conditional("TRACE_ON")]
public static void Msg(string msg)
{
Console.WriteLine(msg);
}
}
public class ProgramClass
{
static void Main()
{
Trace.Msg("Now in Main...");
Console.WriteLine("Done.");
}
}
One thing is to use the ConditionalAttribute
:
[Conditional("DEBUG")]
public void Foo()
{
// Stuff
}
// This call will only be compiled into the code if the DEBUG symbol is defined
Foo();
It's still conditional compilation, but based on attributes rather than #ifdef
, which makes it generally simpler.
Another alternative is simply to use Boolean values at execution time, instead of doing it all at compile time. If you could give us more details of what you're trying to achieve and how you're using conditional compilation, that would be useful.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With