Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

C# C# Objects Encapsulation with Properties Computed Properties

Avinash Bharti
Avinash Bharti
5,578 Points

i am unable to solve this challenge.

I am not clear on computed properties, and whenever i try to calculate Area as required, it says sidelength is read only and cannot be assigned to anything. Please help!

Square.cs
namespace Treehouse.CodeChallenges
{
    class Square : Polygon
    {
        public double SideLength 
        { 
            get
            {
                double Area;
                Area = length;
                return Area; 

            }
        }

        public Square(double sideLength) : base(4)
        {
            SideLength = sideLength;
            double length = sidelength * sidelength;
        }
    }
}
Polygon.cs
namespace Treehouse.CodeChallenges
{
    public class Polygon
    {
        public int NumSides { get; private set; }

        public Polygon(int numSides)
        {
            NumSides = numSides;
        }
    }
}
jason hoffman
jason hoffman
Courses Plus Student 4,956 Points

You are using only the get accessor, which makes it a read-only. You need to define a set accessor too. You will also need to define a field for your property to use.

1 Answer

Steven Parker
Steven Parker
229,744 Points

The instructions say to "Write a computed property named Area ", but it looks like you modified the "SideLength" property instead.

The "SideLength" property should remain as it was provided, your task is to create a new property, and it should be named "Area".