C# Intermediate C# System.Object Object.Equals

Martin Englert
Martin Englert
3,719 Points

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
8,902 Points

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

1 Answer

Steven Parker
Steven Parker
81,434 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