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

Constants and readonly fields in C Sharp (C#) - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a constant in C#?
A constant is a value that is set at compile time and cannot be changed during program execution. It is declared with the const keyword.
Click to reveal answer
beginner
What is a readonly field in C#?
A readonly field is a variable that can only be assigned a value during declaration or inside a constructor. It cannot be changed afterwards.
Click to reveal answer
beginner
When can you assign a value to a readonly field?
You can assign a value to a readonly field either when you declare it or inside the constructor of the class.
Click to reveal answer
beginner
Can a constant be assigned a value at runtime?
No, constants must have their values assigned at compile time and cannot be changed at runtime.
Click to reveal answer
beginner
Which keyword is used to declare a constant in C#?
The keyword const is used to declare a constant.
Click to reveal answer
Which keyword declares a value that cannot change after compilation?
Astatic
Bconst
Cvar
Dreadonly
When can a readonly field be assigned a value?
AAt declaration or inside constructor
BOnly inside methods
COnly at declaration
DAnywhere in the class
Which of these can be changed after the object is created?
Aconst field
Bconst and readonly fields
Creadonly field
Dnormal variable
What happens if you try to assign a value to a const after declaration?
ACompile-time error
BIt updates the value
CRuntime error
DWarning but allowed
Which keyword allows assignment only once, but at runtime?
Aconst
Bstatic
Creadonly
Dvolatile
Explain the difference between a constant and a readonly field in C#.
Think about when and how the values can be set and changed.
You got /4 concepts.
    Describe a situation where you would use a readonly field instead of a constant.
    Consider values that depend on input or runtime information.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main difference between const and readonly fields in C#?
      easy
      A. const and readonly are exactly the same and can be used interchangeably.
      B. readonly values are set at compile time and cannot change; const values can be set at runtime but only once.
      C. const values are set at compile time and cannot change; readonly values can be set at runtime but only once.
      D. const values can be changed anytime; readonly values cannot be changed.

      Solution

      1. Step 1: Understand const behavior

        const fields are fixed at compile time and cannot be changed later.
      2. Step 2: Understand readonly behavior

        readonly fields can be assigned once at runtime, usually in a constructor, and then cannot change.
      3. Final Answer:

        const values are set at compile time and cannot change; readonly values can be set at runtime but only once. -> Option C
      4. Quick Check:

        const fixed at compile, readonly set once at runtime [OK]
      Hint: Remember: const fixed early, readonly set once later [OK]
      Common Mistakes:
      • Thinking readonly can be changed multiple times
      • Confusing when const values are set
      • Assuming const can be assigned in constructors
      2. Which of the following is the correct way to declare a constant integer named MaxValue with value 100 in C#?
      easy
      A. readonly int MaxValue = 100;
      B. const int MaxValue = 100;
      C. int const MaxValue = 100;
      D. static readonly MaxValue = 100;

      Solution

      1. Step 1: Check correct syntax for constant declaration

        In C#, const must be followed by type, then name and value, like const int MaxValue = 100;.
      2. Step 2: Identify incorrect options

        readonly requires a type and cannot be declared like a constant; int const is invalid syntax in C#; static readonly requires a type and cannot omit it.
      3. Final Answer:

        const int MaxValue = 100; -> Option B
      4. Quick Check:

        const syntax = const type name = value; [OK]
      Hint: const must include type before name [OK]
      Common Mistakes:
      • Using 'int const' instead of 'const int'
      • Omitting type in readonly declaration
      • Confusing const and readonly syntax
      3. What will be the output of the following C# code?
      class Test {
          public readonly int Value;
          public Test(int val) {
              Value = val;
          }
      }
      
      class Program {
          static void Main() {
              var t = new Test(10);
              Console.WriteLine(t.Value);
          }
      }
      medium
      A. 10
      B. 0
      C. Compilation error
      D. Runtime error

      Solution

      1. Step 1: Understand readonly assignment in constructor

        The readonly field Value is assigned in the constructor with val, which is 10.
      2. Step 2: Check output of Console.WriteLine

        The program prints the assigned value of Value, which is 10.
      3. Final Answer:

        10 -> Option A
      4. Quick Check:

        readonly set in constructor prints assigned value [OK]
      Hint: readonly can be set once in constructor, then used [OK]
      Common Mistakes:
      • Assuming readonly defaults to 0 if assigned in constructor
      • Thinking readonly cannot be assigned in constructor
      • Expecting compilation or runtime errors
      4. Identify the error in the following C# code:
      class Sample {
          public const int Number;
          public Sample() {
              Number = 5;
          }
      }
      medium
      A. Cannot assign a value to a const field outside declaration.
      B. Const fields must be assigned in constructor, not declaration.
      C. Const fields can be assigned multiple times.
      D. No error, code is correct.

      Solution

      1. Step 1: Check const assignment rules

        const fields must be assigned a value when declared and cannot be assigned later.
      2. Step 2: Analyze code assignment

        The code tries to assign Number = 5; inside the constructor, which is invalid for const.
      3. Final Answer:

        Cannot assign a value to a const field outside declaration. -> Option A
      4. Quick Check:

        const must be assigned only at declaration [OK]
      Hint: const value fixed at declaration, not in constructor [OK]
      Common Mistakes:
      • Trying to assign const in constructor
      • Confusing const with readonly assignment rules
      • Assuming no error in code
      5. You want to create a class that stores a fixed tax rate that never changes and a discount rate that can be set once when the object is created but never changed after. Which declarations are correct in C#?
      hard
      A. public double TaxRate = 0.15; public readonly double DiscountRate;
      B. public readonly double TaxRate = 0.15; public const double DiscountRate;
      C. public static double TaxRate = 0.15; public double DiscountRate;
      D. public const double TaxRate = 0.15; public readonly double DiscountRate;

      Solution

      1. Step 1: Assign fixed tax rate with const

        The tax rate never changes, so const is appropriate for TaxRate.
      2. Step 2: Assign discount rate once at object creation

        The discount rate can be set once when the object is created, so readonly is suitable for DiscountRate.
      3. Step 3: Eliminate incorrect options

        public readonly double TaxRate = 0.15; public const double DiscountRate; swaps const and readonly incorrectly; public static double TaxRate = 0.15; public double DiscountRate; uses mutable fields; public double TaxRate = 0.15; public readonly double DiscountRate; uses non-const for tax rate.
      4. Final Answer:

        public const double TaxRate = 0.15; public readonly double DiscountRate; -> Option D
      5. Quick Check:

        const fixed forever, readonly set once at creation [OK]
      Hint: Use const for fixed, readonly for one-time set [OK]
      Common Mistakes:
      • Using readonly for fixed values
      • Using const for values set at runtime
      • Not understanding when to use static
      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