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

michael edmondson
michael edmondson
4,500 Points

Did you initialize the field 'numSides' to 4 in the base constructor?

in the actual course from my understand i was initialize when the new square was created in the method. Im stuck on how this is done in the main method. ive been stuck on this for a day trying dfferent things. can anyone assist?

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

        public Polygon(int numSides)
        {
            NumSides = numSides;
        }
    }
    class Square : Polygon
    {
        public readonly int SideLength;

        public Square(int sideLength) : base(numSides)
        {

        }
    }
}

1 Answer

Your problem is Square constructor. When you want to pass argument to the base constructor, you have to pass a specify number not numSide in this case , so this metod should look like this: public Square(int sideLength) : base(4).

Here is little more explantion: Square has constructor:

public Square(int sideLength) { }

It inherit from Polygon , so you can use Polygon constructor too. with : base () operator. In parenthesis you pass the argument to Polygon constructor which looks public Polygon(int numSides). You don't esspecially need to know about what name of argument it use. The important is pass INT type to this method. It can be a number or existing variable.