Difficulty: Easy
Correct Answer: float
Explanation:
Introduction / Context:
This question verifies your knowledge of which underlying types are valid for C#.NET enums. Picking an invalid type demonstrates understanding of the integral-only rule.
Given Data / Assumptions:
Concept / Approach:
In C#, an enum's underlying type must be one of: byte, sbyte, short, ushort, int, uint, long, or ulong. Floating-point (float, double) and decimal are not allowed.
Step-by-Step Reasoning:
byte → valid.short → valid.float → invalid (not integral).int → valid and is the default when unspecified.
Verification / Alternative check:
Attempt enum E : float { A } in a test project; the compiler reports that the underlying type must be an integral type.
Why Other Options Are Wrong:
They list integral types that are explicitly allowed by the language specification.
Common Pitfalls:
Assuming any numeric type is acceptable or thinking that decimal/float work because they are “numbers.” Enums are intended to map names to discrete integral constants.
Final Answer:
float
Discussion & Comments