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

Enum vs constants decision in C Sharp (C#) - Practice Questions

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Enum vs Constants Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of enum and constant usage
What is the output of this C# program that uses both an enum and constants?
C Sharp (C#)
using System;

class Program {
    enum Status { Active = 1, Inactive = 0 }
    const int ActiveConst = 1;
    const int InactiveConst = 0;

    static void Main() {
        Console.WriteLine(Status.Active == ActiveConst);
        Console.WriteLine(Status.Inactive == InactiveConst);
        Console.WriteLine((int)Status.Active + (int)Status.Inactive);
    }
}
A
False
True
1
B
True
False
1
C
False
False
0
D
True
True
1
Attempts:
2 left
💡 Hint
Remember enums can be cast to their underlying integer values.
🧠 Conceptual
intermediate
1:30remaining
Choosing between enum and constants
Which scenario is best suited for using an enum instead of constants in C#?
AWhen you need a group of related named values with distinct integer values.
BWhen you want to define a single constant string value.
CWhen you want to define multiple unrelated constants scattered in code.
DWhen you want to store configuration settings that can change at runtime.
Attempts:
2 left
💡 Hint
Enums group related values under one type.
❓ Predict Output
advanced
1:30remaining
Output of invalid enum assignment
What error or output occurs when this C# code runs?
C Sharp (C#)
using System;
enum Colors { Red = 1, Green = 2, Blue = 3 }

class Program {
    static void Main() {
        Colors c = (Colors)5;
        Console.WriteLine(c);
    }
}
A5 (prints the integer value)
BBlue
CCompilation error
D5
Attempts:
2 left
💡 Hint
Casting an integer outside enum values is allowed but may produce unexpected output.
❓ Predict Output
advanced
1:00remaining
Output of constant string concatenation
What is the output of this C# code using constants?
C Sharp (C#)
using System;
class Program {
    const string Hello = "Hello";
    const string World = "World";

    static void Main() {
        string message = Hello + ", " + World + "!";
        Console.WriteLine(message);
    }
}
AHello World!
BHello, World!
CHello,World!
DHelloWorld!
Attempts:
2 left
💡 Hint
Look carefully at the commas and spaces in the concatenation.
🧠 Conceptual
expert
2:30remaining
Why prefer enums over constants for state management?
Why is using enums generally better than constants for managing states in C# applications?
AConstants can be changed at runtime, enums cannot.
BConstants use less memory than enums, so enums are slower.
CEnums provide type safety and better code readability compared to constants.
DEnums allow storing multiple unrelated values in one variable.
Attempts:
2 left
💡 Hint
Think about how enums help prevent invalid values.

Practice

(1/5)
1. Which of the following is the best reason to use an enum instead of constants in C#?
easy
A. To group related named values under one type for better readability
B. To store a single fixed value with a name
C. To improve performance by using fewer bytes
D. To allow values to change at runtime

Solution

  1. Step 1: Understand the purpose of enums

    Enums group related named values under one type, making code clearer and safer.
  2. Step 2: Compare with constants

    Constants hold single fixed values, not groups of related options.
  3. Final Answer:

    To group related named values under one type for better readability -> Option A
  4. Quick Check:

    Enums group related values = D [OK]
Hint: Enums group options; constants hold single fixed values [OK]
Common Mistakes:
  • Thinking constants can group multiple related values
  • Believing enums allow runtime value changes
  • Confusing performance benefits between enums and constants
2. Which of the following is the correct way to declare an enum in C#?
easy
A. enum Colors = [Red, Green, Blue];
B. const enum Colors = { Red, Green, Blue };
C. const Colors { Red, Green, Blue };
D. enum Colors { Red, Green, Blue };

Solution

  1. Step 1: Recall enum syntax in C#

    An enum is declared using the keyword enum followed by the name and braces with values separated by commas.
  2. Step 2: Check each option

    enum Colors { Red, Green, Blue }; matches the correct syntax. Options A, B, and D use invalid keywords or assignment syntax.
  3. Final Answer:

    enum Colors { Red, Green, Blue }; -> Option D
  4. Quick Check:

    Correct enum syntax = C [OK]
Hint: Use 'enum Name { ... }' without assignment or const [OK]
Common Mistakes:
  • Using 'const' keyword with enums
  • Assigning enum with '=' or using brackets []
  • Missing commas between enum values
3. Given the following code, what is the output?
enum Status { Pending = 1, Approved = 2, Rejected = 3 }
class Program {
    static void Main() {
        Status s = Status.Approved;
        Console.WriteLine((int)s);
    }
}
medium
A. Approved
B. 2
C. 1
D. Status.Approved

Solution

  1. Step 1: Understand enum underlying values

    The enum Status assigns Approved the integer value 2.
  2. Step 2: Casting enum to int

    Casting Status.Approved to int prints its underlying value, which is 2.
  3. Final Answer:

    2 -> Option B
  4. Quick Check:

    Enum cast to int = 2 [OK]
Hint: Casting enum to int prints its numeric value [OK]
Common Mistakes:
  • Printing enum name instead of int value
  • Assuming default enum values start at 0
  • Confusing enum member with string output
4. What is wrong with this code snippet?
const int MaxValue = 100;
enum Limits { Min = 0, Max = MaxValue }
medium
A. Enum members must be assigned constant expressions, but MaxValue is not allowed here
B. Constants cannot be declared outside methods
C. Enums cannot use constants as values
D. Nothing is wrong; this code compiles fine

Solution

  1. Step 1: Check enum member assignment rules

    Enum members must be assigned constant expressions known at compile time, but they cannot reference constants declared outside the enum or class scope.
  2. Step 2: Analyze constant usage in enum

    MaxValue is a const int declared outside the enum, which is not allowed as an enum member initializer.
  3. Final Answer:

    Enum members must be assigned constant expressions, but MaxValue is not allowed here -> Option A
  4. Quick Check:

    Enum members cannot reference external consts = A [OK]
Hint: Enum members must be assigned literals or consts declared within the enum or class [OK]
Common Mistakes:
  • Thinking constants declared outside the enum cannot be used
  • Believing constants cannot be declared as class fields (outside methods)
  • Confusing const fields with runtime variables
5. You need to represent the four seasons (Spring, Summer, Autumn, Winter) in your program. You also want to store the average temperature for each season as a fixed value. Which approach is best in C#?
hard
A. Use only constants for both seasons and temperatures
B. Use an enum with temperature values assigned to each season
C. Use an enum for seasons and separate constants for average temperatures
D. Use a class with static readonly fields for seasons and temperatures

Solution

  1. Step 1: Identify the nature of seasons and temperatures

    Seasons are a fixed set of named options, perfect for enums. Temperatures are fixed values but not options themselves.
  2. Step 2: Decide how to store temperatures

    Since temperatures are fixed numeric values related to seasons, constants are suitable to hold these values separately.
  3. Step 3: Evaluate other options

    Assigning temperatures directly to enum members is not ideal because enum values should be simple constants, not meaningful data like temperatures. Using a class with static fields is more complex than needed.
  4. Final Answer:

    Use an enum for seasons and separate constants for average temperatures -> Option C
  5. Quick Check:

    Enum for options + constants for fixed values = B [OK]
Hint: Use enums for sets, constants for related fixed values [OK]
Common Mistakes:
  • Assigning complex data to enum values
  • Using only constants for grouped options
  • Overcomplicating with classes when not needed
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