Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, Jenyay, Вы писали:
J>>CS>public override bool Equals(object obj)
CS> {
CS> return this == (Complex)obj;
CS> }
J>>
CS>Идологически этот метод exception порождать не должен.
CS>Или я не прав?
В данном куске кода если obj.GetType() != typeof(Complex) — то будет сгенерировано исключение InvalidCastException — что есть плохо.
А должно быть что-то вроде:
public override bool Equals(object obj)
{
if (obj == null || obj.GetType() != this.GetType)
return false;
// Дальше идут проверки полей класса.
}
И кстати — подобные вещи Рихтером обмусолены до дыр — уже даже второе издание его труда "Разработка приложений для .NET" вышло