Chapter 23. Diagnostics
When things go wrong, it’s important that information is available to aid in diagnosing the problem. An IDE or debugger can assist greatly to this effect—but it is usually available only during development. Once an application ships, the application itself must gather and record diagnostic information. To meet this requirement, the .NET Framework provides a set of facilities to log diagnostic information, monitor application behavior, detect runtime errors, and integrate with debugging tools if available.
The types in this chapter are defined primarily in the System.Diagnostics
namespace.
Conditional Compilation
You can conditionally compile any section of code in C# with
preprocessor directives.
Preprocessor directives are special instructions to the compiler that
begin with the #
symbol (and, unlike
other C# constructs, must appear on a line of their own). The
preprocessor directives for conditional compilation are #if
, #else
,
#endif
, and #elif
.
The #if
directive instructs the
compiler to ignore a section of code unless a specified
symbol has been defined. You can define a symbol
with either the #define
directive or
a compilation switch. #define
applies
to a particular file; a compilation switch applies
to a whole assembly:
#define TESTMODE // #define directives must be at top of file // Symbol names are uppercase by convention. using System; class Program { static void Main( ) { #if TESTMODE Console.WriteLine ("in test mode!"); // OUTPUT: in test mode! #endif ...
Get C# 3.0 in a Nutshell, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.