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# Intermediate C# Polymorphism Virtual Methods

Koray Erkan
Koray Erkan
1,235 Points

Why this code doesn't work? I couldn't handle it.

It gives error when I try to compile the code. I tried adding an else statement to return false but it didn't work either. Can you see where is the mistake? Thank you inadvance.

SequenceDetector.cs
namespace Treehouse.CodeChallenges
{
    class SequenceDetector
    {
        public virtual bool Scan(int[] sequence)
        {
            return true;
        }
    }
}
RepeatDetector.cs
namespace Treehouse.CodeChallenges
{
    class RepeatDetector : SequenceDetector
    {
        public override bool Scan (int[] sequence)
        {
            for (int i = 0; i <= (sequence.Length); i++)
            {
                if (sequence[i+1] == sequence[i])
                {
                    return true;
                }
            }
            return false;
        }
    }
}

you probably want sequence.length in lowercase.

Steven Parker
Steven Parker
229,785 Points

:x: Lowercase "length" is not an array property.

1 Answer

Steven Parker
Steven Parker
229,785 Points

:point_right: Your loop is running more times than you have elements.

For a normal iteration of all elements, you would stop before you reach the length ("<" instead of "<="). But in this case, since you're adding to the index in your comparison, you need to stop at one less than that.

Koray Erkan
Koray Erkan
1,235 Points

Thank you Steven. It worked when I said "i < (sequence.Length - 1)"