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

Get and set accessors in C Sharp (C#) - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define a property with a get accessor that returns the value of the field.

C Sharp (C#)
private int _age;
public int Age {
    get { return [1]; }
}
Drag options to blanks, or click blank then click option'
AAge
Bthis
Cvalue
D_age
Attempts:
3 left
💡 Hint
Common Mistakes
Returning the property name instead of the field.
Using 'value' inside get accessor.
2fill in blank
medium

Complete the code to define a set accessor that assigns the input value to the field.

C Sharp (C#)
private string _name;
public string Name {
    set { [1] = value; }
}
Drag options to blanks, or click blank then click option'
A_name
Bthis
Cvalue
DName
Attempts:
3 left
💡 Hint
Common Mistakes
Assigning to the property name inside the set accessor causing infinite recursion.
Using 'value' on the left side of assignment.
3fill in blank
hard

Fix the error in the set accessor to correctly assign the value to the field without recursion.

C Sharp (C#)
private double _price;
public double Price {
    set { [1] = value; }
    get { return _price; }
}
Drag options to blanks, or click blank then click option'
A_price
BPrice
Cvalue
Dthis
Attempts:
3 left
💡 Hint
Common Mistakes
Assigning to the property name inside set causing stack overflow.
Using 'value' on the left side.
4fill in blank
hard

Fill both blanks to create a property that only allows setting the field if the value is positive.

C Sharp (C#)
private int _quantity;
public int Quantity {
    get { return _quantity; }
    set {
        if ([1] > 0) {
            [2] = value;
        }
    }
}
Drag options to blanks, or click blank then click option'
Avalue
B_quantity
CQuantity
Dthis
Attempts:
3 left
💡 Hint
Common Mistakes
Assigning to the property name inside set causing recursion.
Checking the field instead of the input value.
5fill in blank
hard

Fill all three blanks to create a property that converts the stored name to uppercase when getting and trims whitespace when setting.

C Sharp (C#)
private string _fullName;
public string FullName {
    get { return [1].ToUpper(); }
    set { [2] = value.[3](); }
}
Drag options to blanks, or click blank then click option'
A_fullName
BFullName
CTrim
DToLower
Attempts:
3 left
💡 Hint
Common Mistakes
Using the property name inside get or set causing recursion.
Using ToLower() instead of Trim() in set.

Practice

(1/5)
1. What is the main purpose of get and set accessors in a C# class?
easy
A. To handle exceptions automatically
B. To define methods that perform calculations
C. To create variables inside a class
D. To control how a property value is read and changed

Solution

  1. Step 1: Understand the role of accessors

    Get and set accessors are used to read and write property values in a controlled way.
  2. Step 2: Differentiate from other class members

    They are not methods or variables themselves but control access to data.
  3. Final Answer:

    To control how a property value is read and changed -> Option D
  4. Quick Check:

    Get/set control property access = A [OK]
Hint: Get/set control property reading and writing [OK]
Common Mistakes:
  • Confusing accessors with methods
  • Thinking they create variables
  • Assuming they handle exceptions automatically
2. Which of the following is the correct syntax for an auto-implemented property with get and set accessors in C#?
easy
A. public int Age { get() set(); }
B. public int Age() { get; set; }
C. public int Age { get; set; }
D. public int Age get; set;

Solution

  1. Step 1: Identify correct property syntax

    Auto-properties use curly braces with get and set accessors separated by semicolons.
  2. Step 2: Check each option

    public int Age { get; set; } matches the correct syntax: public int Age { get; set; }
  3. Final Answer:

    public int Age { get; set; } -> Option C
  4. Quick Check:

    Auto-property syntax = C [OK]
Hint: Auto-properties use braces with get; set; inside [OK]
Common Mistakes:
  • Using parentheses instead of braces
  • Missing semicolons after get and set
  • Writing get and set without braces
3. What will be the output of the following C# code?
class Person {
  private string name;
  public string Name {
    get { return name; }
    set { name = value.ToUpper(); }
  }
}

var p = new Person();
p.Name = "alice";
Console.WriteLine(p.Name);
medium
A. alice
B. ALICE
C. Name
D. null

Solution

  1. Step 1: Analyze the set accessor behavior

    The set accessor converts the assigned value to uppercase before storing it in the private field.
  2. Step 2: Analyze the get accessor output

    The get accessor returns the stored uppercase string.
  3. Final Answer:

    ALICE -> Option B
  4. Quick Check:

    Set converts to uppercase, output = ALICE [OK]
Hint: Set modifies value before storing, get returns stored value [OK]
Common Mistakes:
  • Ignoring the ToUpper() call in set
  • Assuming original case is preserved
  • Confusing field and property names
4. Identify the error in this property definition:
public int Score {
  get { return score; }
  set score = value; }
}
medium
A. Incorrect set accessor syntax
B. Missing semicolon after return statement
C. Missing private field declaration
D. Property name should be lowercase

Solution

  1. Step 1: Check set accessor syntax

    The set accessor must use braces { } around its code block, but here it is missing the opening brace.
  2. Step 2: Confirm other parts

    The return statement has a semicolon, private field may be declared elsewhere, and property names are PascalCase by convention.
  3. Final Answer:

    Incorrect set accessor syntax -> Option A
  4. Quick Check:

    Set accessor needs braces = A [OK]
Hint: Set accessor must have braces around code block [OK]
Common Mistakes:
  • Omitting braces in set accessor
  • Confusing property and field names
  • Assuming property names must be lowercase
5. You want to create a property Age that only allows values between 0 and 120. Which implementation correctly enforces this using get and set accessors?
hard
A. private int age; public int Age { get { return age; } set { if (value >= 0 && value <= 120) age = value; } }
B. public int Age { get; set; } // No validation needed
C. private int age; public int Age { get { return age; } set { age = value; } }
D. private int age; public int Age { get { return age; } set { if (value > 0) age = value; } }

Solution

  1. Step 1: Check validation logic in set accessor

    private int age; public int Age { get { return age; } set { if (value >= 0 && value <= 120) age = value; } } checks if value is between 0 and 120 before assigning it to the private field.
  2. Step 2: Compare other options

    The auto-implemented property has no validation. The simple backing field assignment lacks checks. The partial validation only checks if value > 0, missing the upper limit.
  3. Final Answer:

    private int age; public int Age { get { return age; } set { if (value >= 0 && value <= 120) age = value; } } -> Option A
  4. Quick Check:

    Set accessor validates range 0-120 = B [OK]
Hint: Use if condition in set to validate value range [OK]
Common Mistakes:
  • Not validating upper limit
  • Assigning value without checks
  • Assuming auto-properties validate automatically