Bird
Raised Fist0
C Sharp (C#)programming~5 mins

Underlying numeric values in C Sharp (C#) - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What are underlying numeric values in C# enums?
Underlying numeric values are the integer values automatically or explicitly assigned to each enum member. By default, they start at 0 and increase by 1 for each member.
Click to reveal answer
beginner
How can you specify a custom underlying numeric value for an enum member in C#?
You assign a value directly to the enum member, for example: enum Days { Sunday = 1, Monday = 2 }.
Click to reveal answer
beginner
What is the default underlying type of an enum in C#?
The default underlying type of an enum in C# is int.
Click to reveal answer
intermediate
Can you change the underlying type of an enum in C#? If yes, how?
Yes, you can specify a different integral type like byte, short, long by declaring it after the enum name, e.g., enum Colors : byte { Red, Green }.
Click to reveal answer
beginner
How do you get the underlying numeric value of an enum member in C#?
You can cast the enum member to its underlying type, for example: int value = (int)Days.Monday;.
Click to reveal answer
What is the default underlying numeric value of the first enum member if not specified?
A0
B1
C-1
DDepends on the enum
How do you specify an enum with an underlying type of byte?
Aenum Colors(byte) { Red, Green }
Benum Colors : byte { Red, Green }
Cenum Colors { Red = byte, Green = byte }
Denum Colors { byte Red, byte Green }
What happens if you assign the same numeric value to two enum members?
AIt causes a compile error
BThe second member gets incremented automatically
CBoth members share the same underlying value
DThe enum becomes invalid
How do you retrieve the numeric value of an enum member in C#?
AUse a cast like (int)EnumMember
BUse Enum.GetValue() method
CUse Enum.ToString()
DUse Enum.Parse()
Which of these is NOT a valid underlying type for an enum in C#?
Aint
Bbyte
Clong
Dstring
Explain what underlying numeric values are in C# enums and how they are assigned.
Think about how enum members get their numbers.
You got /3 concepts.
    Describe how to change the underlying type of an enum and why you might want to do that.
    Look at the enum declaration syntax.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the underlying numeric value of an enum member in C# if not explicitly set?
      easy
      A. It starts at 0 and increments by 1 for each member
      B. It is always 1 for all members
      C. It is a random number assigned by the compiler
      D. It must be manually assigned for each member

      Solution

      1. Step 1: Understand default enum numbering

        By default, C# assigns the first enum member the value 0.
      2. Step 2: Check subsequent members

        Each following member increments by 1 automatically unless explicitly set.
      3. Final Answer:

        It starts at 0 and increments by 1 for each member -> Option A
      4. Quick Check:

        Default enum values start at 0 and increment [OK]
      Hint: Remember enums start at zero unless you say otherwise [OK]
      Common Mistakes:
      • Thinking enums start at 1 by default
      • Assuming enum values are random
      • Believing manual assignment is always required
      2. Which of the following is the correct way to get the numeric value of an enum member Day.Monday in C#?
      easy
      A. int value = Convert.ToInt32(Day.Monday.ToString());
      B. int value = Day.Monday.ToInt();
      C. int value = Day.Monday.Value;
      D. int value = (int)Day.Monday;

      Solution

      1. Step 1: Recall casting enum to int

        In C#, you get the numeric value by casting the enum member to int using (int).
      2. Step 2: Check other options

        Enums have no ToInt() method or Value property; Convert.ToInt32(Day.Monday.ToString()) parses the name ("Monday") and throws FormatException.
      3. Final Answer:

        int value = (int)Day.Monday; -> Option D
      4. Quick Check:

        Cast enum to int with (int) [OK]
      Hint: Cast enum to int with (int) to get its number [OK]
      Common Mistakes:
      • Using non-existent methods like ToInt()
      • Trying to access a Value property
      • Converting enum.ToString() to int (parses name)
      3. Given the enum:
      enum Color { Red = 3, Green, Blue }

      What is the output of this code?
      Console.WriteLine((int)Color.Green);
      medium
      A. 4
      B. 3
      C. 1
      D. 0

      Solution

      1. Step 1: Identify explicit enum value

        Color.Red is set to 3 explicitly.
      2. Step 2: Understand implicit increment

        Color.Green is next, so it gets 4 (3 + 1).
      3. Final Answer:

        4 -> Option A
      4. Quick Check:

        Enum increments from explicit value [OK]
      Hint: Next enum value increments by 1 from previous explicit value [OK]
      Common Mistakes:
      • Assuming Green is 1 by default
      • Thinking Green equals Red's value
      • Forgetting implicit increment after explicit value
      4. What is wrong with this code snippet?
      enum Status { Active = 1, Inactive = 1, Pending = 2 }
      medium
      A. Enum members cannot have duplicate values
      B. Nothing is wrong; duplicate values are allowed
      C. Enum members must be strings, not numbers
      D. Enum members must be assigned sequentially starting at 0

      Solution

      1. Step 1: Check enum value rules

        C# allows enum members to share the same underlying numeric value.
      2. Step 2: Verify other options

        Enum members can be numbers, do not need sequential values, and duplicates are allowed.
      3. Final Answer:

        Nothing is wrong; duplicate values are allowed -> Option B
      4. Quick Check:

        Duplicate enum values are valid in C# [OK]
      Hint: Duplicate enum values are allowed in C# [OK]
      Common Mistakes:
      • Thinking duplicate enum values cause errors
      • Believing enums must start at 0 and be sequential
      • Confusing enum members with strings
      5. You have this enum:
      enum Level { Low = 1, Medium = 5, High = 10 }

      Which code correctly checks if an integer variable score matches any enum value?
      hard
      A. bool isMatch = score >= (int)Level.Low && score <= (int)Level.High;
      B. bool isMatch = (Level)score != null;
      C. bool isMatch = Enum.IsDefined(typeof(Level), score);
      D. bool isMatch = score == Level.Low || score == Level.Medium || score == Level.High;

      Solution

      1. Step 1: Understand Enum.IsDefined usage

        Enum.IsDefined checks if a given integer matches any enum member's underlying value.
      2. Step 2: Analyze other options

        A checks range (includes invalid like 2); B casts int to enum (always succeeds) != null (always true); C direct int == enum comparisons do not compile without casting enum to int.
      3. Final Answer:

        bool isMatch = Enum.IsDefined(typeof(Level), score); -> Option C
      4. Quick Check:

        Use Enum.IsDefined to check valid enum values [OK]
      Hint: Use Enum.IsDefined to check if int matches enum value [OK]
      Common Mistakes:
      • Casting int to enum without validation
      • Checking range instead of exact enum values
      • Comparing int directly to enum members without casting
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard