Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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
212,257 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".