Compiling out debugging statements - any easy way?
-
I have a lot of debugging statements in my code, and I want to compile most of them away in a release build. Is there any easier way to do this besides surrounding each one with #if DEBUG...? An alternative solution would be to create a single method called Debug() which has the preprocessor statement inside of it. But this would involve refactoring a lot of code and would still involve a method invocation (albeit an empty one). Any ideas?
-
I have a lot of debugging statements in my code, and I want to compile most of them away in a release build. Is there any easier way to do this besides surrounding each one with #if DEBUG...? An alternative solution would be to create a single method called Debug() which has the preprocessor statement inside of it. But this would involve refactoring a lot of code and would still involve a method invocation (albeit an empty one). Any ideas?
Those are your two options, sorry :-)
Christian Graus Please read this if you don't understand the answer I've given you "also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
-
I have a lot of debugging statements in my code, and I want to compile most of them away in a release build. Is there any easier way to do this besides surrounding each one with #if DEBUG...? An alternative solution would be to create a single method called Debug() which has the preprocessor statement inside of it. But this would involve refactoring a lot of code and would still involve a method invocation (albeit an empty one). Any ideas?
>>would still involve a method invocation (albeit an empty one). You can mark the refactored code with the "ConditionalAttribute" eg: [Conditional("Debug")] public void DoStuff() { } This lets the compiler know that it should only _emit calls to that method if we are in debug mode_ So the method will still be present in release mode, but no calls to it will be present in the IL code. (And if your debug statements are output stuff only. then just use "Debug.WriteLine(text)" , those will also be removed in release mode)
Blog: http://www.rogeralsing.com Projects: http://www.puzzleframework.com