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
Computed Properties in C#
📖 Scenario: You are creating a simple program to manage a rectangle's dimensions and calculate its area automatically.
🎯 Goal: Build a C# class with computed properties that calculate the area of a rectangle based on its width and height.
📋 What You'll Learn
Create a class called Rectangle with two properties: Width and Height.
Add a computed property called Area that returns the product of Width and Height.
Create an instance of Rectangle with specific width and height values.
Print the value of the Area property.
💡 Why This Matters
🌍 Real World
Computed properties are useful in many programs where you want to calculate values automatically without storing extra data.
💼 Career
Understanding computed properties helps you write cleaner, more efficient code in C# applications, a common skill in software development jobs.
Progress0 / 4 steps
1
Create the Rectangle class with Width and Height properties
Create a public class called Rectangle with two public auto-implemented properties: Width and Height, both of type double.
C Sharp (C#)
Hint
Use public double Width { get; set; } and similarly for Height.
2
Add the computed property Area
Inside the Rectangle class, add a public computed property called Area of type double that returns the product of Width and Height using only a getter.
C Sharp (C#)
Hint
Use expression-bodied property syntax: public double Area => Width * Height;
3
Create an instance of Rectangle with specific dimensions
In the Main method, create a variable called rect and assign it a new Rectangle object with Width set to 5.0 and Height set to 3.0.
C Sharp (C#)
Hint
Use object initializer syntax: new Rectangle { Width = 5.0, Height = 3.0 }
4
Print the Area property of the Rectangle instance
In the Main method, add a Console.WriteLine statement to print the value of rect.Area.
C Sharp (C#)
Hint
Use Console.WriteLine(rect.Area); to display the area.
Practice
(1/5)
1. What is a computed property in C#? public int Area => Width * Height;
easy
A. A property that calculates its value from other data automatically
B. A property that stores a fixed value in memory
C. A method that returns a value
D. A variable that can be changed anytime
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 A
Quick 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
A. public int Total() { return Price + Quantity; }
B. public int Total { get { return Price * Quantity; } }
C. public int Total => Price + Quantity { get; set; }
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 B
Quick 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
A. 12
B. 7
C. 0
D. Error
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 A
Quick 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
A. Circumference should not use Math.PI
B. Radius property is missing get accessor
C. Computed property Diameter cannot be assigned in set accessor
D. No error, code is correct
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 C
Quick 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
A. public bool IsAdult() { return Age >= 18; }
B. public bool IsAdult { get { return Age > 18; } }
C. public bool IsAdult { get; set; } = Age >= 18;
D. public bool IsAdult => Age >= 18;
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 D
Quick Check:
Age >= 18 for IsAdult [OK]
Hint: Use => with condition for simple computed properties [OK]