Сначала сгенерируйте проверки на равенство в базовом классе, затем сделайте это в потомке.
В потомке разница будет в классе public bool Equals(MyOtherClass other)
.
Без проверки на равенство вбазовый класс:
public bool Equals(MyOtherClass other)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
return other.Property2 == Property2;
}
С проверками на равенство в базовом классе:
public bool Equals(MyOtherClass other)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
return base.Equals(other) && other.Property2 == Property2;
}
Обратите внимание на добавленный вызов base.Equals(other)
, который, таким образом, становится ответственным за свойства в базеclass.
Обратите внимание , что если вы делаете это наоборот, сначала добавляете проверки на равенство потомку, а затем добавляете их в базовый класс, тогда ReSharper не идет изадним числом изменяет код в потомке, вы должны либо восстановить его (удалить + создать), либо изменить код вручную.