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 Inheritance Inheritance

C# Objects Polygon class challenge

I am not sure where i am going wrong? I cant find a way to create a second file for the Square class so i just created it within the namespace. I am getting a message asking if i defined my Square class? I have it set as the child of polygon? Any help would be appreciated.

Polygon.cs
namespace Treehouse.CodeChallenges
{
    class Polygon
    {
        public readonly int NumSides;

        public Polygon(int numSides)
        {
            NumSides = numSides;
            numSides = 4;
        }

    }
    class Square : Polygon

    public readonly int SideLength;

    public Square(int sideLength) : base(int numSides)
    {
        SideLength = sideLength;
    }
}

i figured it out, first i removed the numSides = 4 initiation and declared the base as per directions to be 4. next i read through each line and discovered that i was missing a { after the square class, resulting in a missing one at the end.

1 Answer

Steven Parker
Steven Parker
231,271 Points

You're pretty close.

But you omitted the braces that enclose the body of your Square class. Take a look at the Polygon class as an example.

Also, when they instructions say, "Use base to initialize NumSides to 4", they literally mean pass the number 4: "base(4)" (The base constructor is the one in Polygon).

And don't modify the Polygon class itself. But luckily, the line you added doesn't really do anything.