C#.NET enum with negative starting value: what integers are printed? enum color : int { red = -3, green, blue } Console.Write((int)color.red + ", "); Console.Write((int)color.green + ", "); Console.Write((int)color.blue);

Difficulty: Easy

Correct Answer: -3, -2, -1

Explanation:

Introduction / Context:This checks whether you know that enum underlying values in C# can be any valid integral values, including negatives, and that implicit members increment by 1 from the prior member.

Given Data / Assumptions:

  • red = -3 is explicitly assigned.
  • green and blue are implicit following members.
  • Underlying type is int.

Concept / Approach:An enum member without an explicit value receives the value of the previous member plus 1, even when starting from a negative value.

Step-by-Step Solution:

red → -3 (explicit).green → -2 (implicit: -3 + 1).blue → -1 (implicit: -2 + 1).Printing yields -3, -2, -1.

Verification / Alternative check:Cast each member to int in a quick console app, or iterate Enum.GetValues(typeof(color)) and print casted values.

Why Other Options Are Wrong:-3, 0, 1 and 0, 1, 2 assume automatic reset at 0, which does not happen. red, green, blue and fully qualified names are not integers.

Common Pitfalls:Thinking that enums must start at 0 or that negatives are disallowed; both are misconceptions.

Final Answer:-3, -2, -1

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion