title: Define TRACE Constant in .NET / Visual Studio
body: <p>In Visual Studio 2010, if you go to a project's properties and go to the Build Tab, there is a checkbox for "Define TRACE Constant." Which is the equivalent of doing a #define TRACE. </p>
  
  <p>All of the methods of System.Diagnostics.Trace have a <code>[Conditional("TRACE")]</code> around them. </p>
  
  <p>My question is <em>why</em> would you ever turn this off? I mean, if you don't have any trace listeners defined, then it isn't as if you're going to fill up a log or something. It just feels weird to me. If you are going through the effort to put in calls to Trace, why would you want to not control it through the App/Web.config, but instead control it via a compiler switch, which rules out the possibility of turning it back on without a recompile. </p>
  
  <p>Am I missing something? Surely, it can't be THAT bad for performance, right? </p>