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# System.Object Object.Equals

public override string Equals(object obj1 , object obj2){} won't compile. Why?

using System; namespace Treehouse.CodeChallenges { public class VocabularyWord { public string Word { get; private set; }

    public VocabularyWord(string word)
    {
        Word = word;
    }

    public override string ToString()
    {
        return Word;
    }

    public overide bool Equals(object obj1,object obj2)
    {
        if(obj1.Word == obj2.Word)
        {
            return true;
        }
        else
        {
            return false;   
        }

    }
}

}

Is there something wrong with obj1.Word and obj2.Word?

VocabularyWord.cs
using System;
namespace Treehouse.CodeChallenges
{
    public class VocabularyWord
    {
        public string Word { get; private set; }

        public VocabularyWord(string word)
        {
            Word = word;
        }

        public override string ToString()
        {
            return Word;
        }

        public overide bool Equals(object obj1,object obj2)
        {
            if(obj1.Word == obj2.Word)
            {
                return true;
            }
            else
            {
                return false;   
            }

        }
    }
}
Patrik Horváth
Patrik Horváth
11,110 Points

re you sure its "overide" ? i think its "override"

1 Answer

Steven Parker
Steven Parker
231,269 Points

There are a few issues:

  • as Patrik pointed out, "override" has 2 "r"s
  • the override must have the same signature as the original function (which takes just one argument)
  • an "object" doesn't have a "Word" property, so you'll need to cast it to the right type
  • you still need to accommodate the possibility of the argument being null