Explanation #elif lets you create a compound conditional directive. The #elif expression will be evaluated if neither the preceding #if (C# Reference) nor any preceding, optional, #elif directive expressions evaluate to true. If a #elif expression evaluates to true, the compiler evaluates all the code between the #elif and the next conditional directive. For example: #define VC7 //... #if debug Console.Writeline("Debug build"); #elif VC7 Console.Writeline("Visual Studio 7"); #endif Incorrect: Not B: * System.Reflection.Assembly.GetExecutingAssembly Method Gets the assembly that contains the code that is currently executing.* Assembly.IsDefined Method Indicates whether or not a specified attribute has been applied to the assembly. * System.Dignostics.Debugger Class Enables communication with a debugger. Property: IsAttached Gets a value that indicates whether a debugger is attached to the process.