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

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

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare an enum named Color with values Red, Green, and Blue.

C Sharp (C#)
public enum Color [1] Red, Green, Blue };
Drag options to blanks, or click blank then click option'
A(
B{
C[
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses instead of curly braces.
Using square brackets or angle brackets.
2fill in blank
medium

Complete the code to declare a constant integer named MaxValue with value 100.

C Sharp (C#)
public const int MaxValue = [1];
Drag options to blanks, or click blank then click option'
A100
Bmax
C"100"
DMaxValue
Attempts:
3 left
💡 Hint
Common Mistakes
Using a string "100" instead of number 100.
Using variable names instead of values.
3fill in blank
hard

Fix the error in the code to correctly assign the enum value Color.Green to variable selectedColor.

C Sharp (C#)
Color selectedColor = [1];
Drag options to blanks, or click blank then click option'
AGreen
BselectedColor.Green
CColor.Green
DColor[Green]
Attempts:
3 left
💡 Hint
Common Mistakes
Using only the member name without enum type.
Trying to access enum members like an array.
4fill in blank
hard

Fill both blanks to declare a constant string named Status with value "Active".

C Sharp (C#)
public const [1] Status = [2];
Drag options to blanks, or click blank then click option'
Astring
B"Active"
CActive
Dint
Attempts:
3 left
💡 Hint
Common Mistakes
Using unquoted text for string constants.
Using wrong type like int for string values.
5fill in blank
hard

Fill all three blanks to create a dictionary mapping enum Color to string names, including only Red and Blue.

C Sharp (C#)
var colorNames = new Dictionary<Color, [1]> { {Color.Red, [2], {Color.Blue, [3] };
Drag options to blanks, or click blank then click option'
Astring
B"Red"
C"Blue"
Dint
Attempts:
3 left
💡 Hint
Common Mistakes
Using int instead of string as dictionary value type.
Not quoting string 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