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

Enum vs constants decision in C Sharp (C#) - Quick Revision & Key Differences

Choose your learning style10 modes available
Recall & Review
beginner
What is an enum in C#?
An enum (short for enumeration) is a special data type that lets you define a set of named constant values. It helps group related constants under one type for better readability and type safety.
Click to reveal answer
beginner
What are constants in C#?
Constants are fixed values declared with the keyword const. They cannot change during program execution and are usually used for single fixed values like numbers or strings.
Click to reveal answer
intermediate
When should you use an enum instead of constants?
Use enums when you have a group of related named values that represent a category or set of options. Enums improve code clarity and help prevent invalid values by restricting inputs to the defined set.
Click to reveal answer
intermediate
When are constants preferred over enums?
Use constants when you need a single fixed value or unrelated fixed values. Constants are simpler and better for values like mathematical constants or configuration strings.
Click to reveal answer
intermediate
What is a key advantage of enums over constants?
Enums provide type safety, meaning the compiler can check if you use only valid values from the enum. Constants do not provide this safety since they are just individual values.
Click to reveal answer
Which of the following is true about enums in C#?
AEnums are used for unrelated single fixed values.
BEnums group related named constants under one type.
CEnums can change their values during runtime.
DEnums cannot be used with switch statements.
When should you use a constant instead of an enum?
AWhen you have multiple related named values.
BWhen you want to restrict inputs to a set.
CWhen you need a single fixed value like Pi.
DWhen you want type safety for a set of options.
What keyword is used to declare a constant in C#?
Aconst
Benum
Cstatic
Dreadonly
Which feature is a benefit of enums over constants?
AThey provide type safety.
BThey can be changed at runtime.
CThey are faster to access.
DThey use less memory.
Can enums be used in switch statements in C#?
ANo, enums cannot be used in switch statements.
BOnly if the enum is declared as public.
COnly if the enum values are integers.
DYes, enums work well with switch statements.
Explain when you would choose an enum over constants in C# and why.
Think about grouping and safety.
You got /4 concepts.
    Describe a scenario where constants are better than enums and explain your reasoning.
    Consider simple fixed values like Pi.
    You got /4 concepts.

      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