Difficulty: Easy
Correct Answer: 1, 11
Explanation:
Introduction / Context:
This item checks your knowledge of how C#.NET assigns underlying integer values to enum members when some are explicit and others are implicit.
Given Data / Assumptions:
red and green have no explicit values.blue = 5 is explicit.cyan follows blue without an explicit value.magenta = 10 is explicit, followed by yellow with no explicit value.
Concept / Approach:
Rules: the first unassigned enum member gets value 0; each subsequent unassigned member increases by 1 from the previous member’s value. When an explicit value appears, counting resumes from that value for subsequent unassigned members.
Step-by-Step Solution:
red → 0 (first implicit).green → 1 (implicit next).blue → 5 (explicit).cyan → 6 (implicit after 5).magenta → 10 (explicit).yellow → 11 (implicit after 10).Therefore, printing (int)color.green and (int)color.yellow yields 1, 11.
Verification / Alternative check:
Print all values via foreach (var x in Enum.GetValues(typeof(color))) Console.Write((int)x + " ");.
Why Other Options Are Wrong:
2, 11 and 2, 6 mis-assign the early implicit values. 1, 5 uses yellow as 5, ignoring the explicit magenta = 10.
Common Pitfalls:
Assuming implicit values reset after each explicit assignment or always start at 0 for each block; they continue from the last explicit value.
Final Answer:
1, 11
Discussion & Comments