Computed properties let you create values that are calculated from other data automatically. They help keep your code clean and easy to understand.
Computed properties in C Sharp (C#)
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
C Sharp (C#)
public ReturnType PropertyName { get { // return computed value here } set { // optional: update related data here } }
The get block calculates and returns the value.
The set block is optional and lets you update other data when the property is assigned.
Examples
C Sharp (C#)
public string FullName { get { return FirstName + " " + LastName; } }
C Sharp (C#)
public int Area { get => Width * Height; }
C Sharp (C#)
private int _age; public int Age { get => _age; set { if (value >= 0) _age = value; } }
Sample Program
This program creates a Person with first and last names. The FullName computed property joins them and prints the full name.
C Sharp (C#)
using System; class Person { public string FirstName { get; set; } public string LastName { get; set; } public string FullName { get => FirstName + " " + LastName; } } class Program { static void Main() { var person = new Person { FirstName = "Jane", LastName = "Doe" }; Console.WriteLine(person.FullName); } }
Important Notes
Computed properties do not store data themselves; they calculate values when accessed.
You can make a property read-only by only providing a get accessor.
Use computed properties to keep your data consistent and avoid duplication.
Summary
Computed properties calculate values based on other data automatically.
They help keep code clean by avoiding extra stored data.
You can make properties read-only or control how values are set.
Practice
1. What is a computed property in C#?
public int Area => Width * Height;easy
Solution
Step 1: Understand the property syntax
The property uses the lambda syntax with =>, which means it calculates the value when accessed.Step 2: Recognize computed property behavior
It does not store a value but returns Width * Height each time, so it is computed automatically.Final Answer:
A property that calculates its value from other data automatically -> Option AQuick Check:
Computed property = calculates value [OK]
Hint: Look for => syntax to spot computed properties [OK]
Common Mistakes:
- Thinking computed properties store values
- Confusing methods with properties
- Assuming computed properties can be set directly
2. Which of the following is the correct syntax for a read-only computed property in C#?
easy
Solution
Step 1: Identify read-only computed property syntax
public int Total { get { return Price * Quantity; } } uses a property with only a get accessor returning a calculation, which is correct.Step 2: Check other options for errors
public int Total { set { Price = value; } } only has set, so not read-only. public int Total => Price + Quantity { get; set; } mixes expression body with get/set incorrectly. public int Total() { return Price + Quantity; } is a method, not a property.Final Answer:
public int Total { get { return Price * Quantity; } } -> Option BQuick Check:
Read-only computed property = get only [OK]
Hint: Read-only properties have only get accessor [OK]
Common Mistakes:
- Using set accessor in read-only properties
- Confusing methods with properties
- Incorrect expression body syntax
3. What is the output of this code?
class Box {
public int Width { get; set; } = 3;
public int Height { get; set; } = 4;
public int Area => Width * Height;
}
var box = new Box();
Console.WriteLine(box.Area);medium
Solution
Step 1: Identify property values
Width is 3 and Height is 4 as set by default.Step 2: Calculate computed property Area
Area returns Width * Height = 3 * 4 = 12.Final Answer:
12 -> Option AQuick Check:
3 * 4 = 12 [OK]
Hint: Multiply Width and Height for Area [OK]
Common Mistakes:
- Adding instead of multiplying
- Assuming default values are zero
- Confusing property with method call
4. Find the error in this computed property code:
public class Circle {
public double Radius { get; set; }
public double Diameter => Radius * 2;
public double Circumference { get { return 2 * Math.PI * Diameter; } set { Diameter = value; } }
}medium
Solution
Step 1: Check computed property Diameter
Diameter is read-only computed property with only get accessor (=>). It cannot be assigned a value.Step 2: Analyze Circumference set accessor
Circumference tries to set Diameter, which is not allowed because Diameter has no set accessor.Final Answer:
Computed property Diameter cannot be assigned in set accessor -> Option CQuick Check:
Read-only property cannot be set [OK]
Hint: Computed properties with => are read-only [OK]
Common Mistakes:
- Trying to set read-only computed properties
- Ignoring property accessors
- Confusing methods with properties
5. You want to create a computed property
IsAdult in a Person class that returns true if Age is 18 or more, otherwise false. Which code correctly implements this?hard
Solution
Step 1: Understand requirement for computed property
IsAdult should return true if Age is 18 or more, false otherwise, without storing a value.Step 2: Check each option
public bool IsAdult => Age >= 18; uses expression-bodied property correctly with >= 18. public bool IsAdult { get { return Age > 18; } } uses > 18 (wrong condition). public bool IsAdult { get; set; } = Age >= 18; tries to set property with Age comparison, which is invalid. public bool IsAdult() { return Age >= 18; } is a method, not a property.Final Answer:
public bool IsAdult => Age >= 18; -> Option DQuick Check:
Age >= 18 for IsAdult [OK]
Hint: Use => with condition for simple computed properties [OK]
Common Mistakes:
- Using > instead of >= for age check
- Trying to set computed property value
- Confusing methods with properties
