Solutions that aren't sufficient:
- I don't want to have to comment out all calls to this function every
time I want to do performance analysis, because there are LOTS of
calls and this would take a long time.
- I can't simply modify the function to return null instead of
printing, because the arguments to the function take a lot of overhead
to compute. For example, I may call MyDebug.Trace("val1
"+val1.ToString()+"val2"+val2.ToString()), which has to concatenate
several strings together, which causes a lot of overhead. I don't want
the argument to be evaluated in the first place.
I suspect there must be a solution for this, since C++ has a nice way
to solve this:
(from http://www-subatech.in2p3.fr/~photons/subatech/soft/carnac/CPP-DEB-2.shtml)
#define assert(THETEST) ((void)0)
makes it so all calls to assert go away.
My question then is, how can I remove all calls to a function in C#,
without commenting the calls out (takes too long) and so that the
arguments aren't evaluated?
Thanks a lot for your help.
#if DEBUG
...
#endif
?
"Matthew Caesar" <mattc...@yahoo.com> wrote in message
news:1bad82df.0308...@posting.google.com...
[Conditional("DEBUG")]
Then compile your code with:
csc program.cs /d:DEBUG
If you leave out "/d:DEBUG", the function calls to that particular
method will be ignored. This is a much cleaner than using #defines and #ifs
-Andre
John Wood wrote:
> Do you need:
>
> #if DEBUG
> ....
"Andre" <food_...@hotmail.com> wrote in message
news:3f367bdc$1...@clarion.carno.net.au...
Andre <food_...@hotmail.com> wrote in message news:<3f367bdc$1...@clarion.carno.net.au>...