.NET 4.x Компилятор ругается на переопределение метода Equals - C#

Узнай цену своей работы

Формулировка задачи:

Вот переопределил метод Equals
public override bool Equals(Person p1)
        {
            
            if (p1.name == name || p1.lastname == lastname)
                return true;
            return
                 false;
        }
но компилятор ругается что
Ошибка  1   "ConsoleApplication1.Person.Equals(ConsoleApplication1.Person)": не найден метод, пригодный для переопределения C:\Users\2\AppData\Local\Temporary Projects\ConsoleApplication1\Program.cs  49  30  ConsoleApplication1
Если я создаю свой метод не зависимо через от базового (через new) то все нормально, но хотелось разобраться почему ругается компилятор

Решение задачи: «.NET 4.x Компилятор ругается на переопределение метода Equals»

textual
Листинг программы
class Student: IComparable
{
    public int number;
    public string name;
 
    public Student(int number, string name)
    {
        this.name = name;
        this.number = number;
    }
 
    int IComparable.CompareTo(object input)
    {
        Student temp = (Student)input;
        int length;
 
        if (this.name.Length > temp.name.Length) length = temp.name.Length;
        else length = this.name.Length;
 
        for (int i = 0; i < length; i++)
        {
            if (this.name[i] > temp.name[i])
                return 1;
            if (this.name[i] < temp.name[i])
                return -1;
 
            if (i == length - 1)
            {
                if (this.name.Length < temp.name.Length)
                    return -1;
                if (this.name.Length > temp.name.Length)
                    return 1;
                if (this.name.Length == temp.name.Length)
                    return 0;
 
            }
        }
        return 0;
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы