PdfPrep.com

What are two possible ways to achieve this goal?

You are testing an application. The application includes methods named CalculateInterest and LogLine. The CalculateInterest() method calculates loan interest. The LogLine() method sends diagnostic messages to a console window.

The following code implements the methods. (Line numbers are included for reference only.)

You have the following requirements:

• The CalculateInterest() method must run for all build configurations.

• The LogLine() method must run only for debug builds.

You need to ensure that the methods run correctly.

What are two possible ways to achieve this goal? (Each correct answer presents a complete solution. Choose two.)
A . Insert the following code segment at line 01:
#region DEBUG
Insert the following code segment at line 10:
#endregion
B . Insert the following code segment at line 01:
[Conditional("DEBUG")]
C . Insert the following code segment at line 05:
#region DEBUG
Insert the following code segment at line 07:
#endregion
D . Insert the following code segment at line 10:
[Conditional("DEBUG")]

E . Insert the following code segment at line 01:
#if DEBUG
Insert the following code segment at line 10:
#endif
F . Insert the following code segment at line 10:
[Conditional("RELEASE")]
G . Insert the following code segment at line 05:
#if DEBUG
Insert the following code segment at line 07:
#endif

Answer: DG

Explanation:

D: Also, it’s worth pointing out that you can use [Conditional("DEBUG")] attribute on methods that return void to have them only executed if a certain symbol is defined.

The compiler would remove all calls to those methods if the symbol is not defined:

[Conditional("DEBUG")]

void PrintLog() {

Console.WriteLine("Debug info");

}

void Test() {

PrintLog();

}

G: When the C# compiler encounters an #if directive, followed eventually by an #endif directive, it will compile the code between the directives only if the specified symbol is defined. Unlike C and C++, you cannot assign a numeric value to a symbol; the #if statement in C# is Boolean and only tests whether the symbol has been defined or not. For example,

#define DEBUG

#if DEBUG

Console.WriteLine("Debug version");

#endif

Reference: http://stackoverflow.com/questions/2104099/c-sharp-if-then-directives-for-debug-vs-release

Exit mobile version