В одном примере мой профессор применил Equals следующим образом:
public class Person {
private string dni;
// ...
public override bool Equals(object o) {
if (o == null)
return (this == null);
else {
return ((o is Person) && (this.dni == (o as Person).dni));
}
}
}
У меня нет опыта работы с С#, но насколько я знаю, this
не может быть null внутри функции-члена (по крайней мере, это верно в С++ и Java, о языках, которые я знаю), поэтому if кажется мне странным.
Я прав или есть какой-либо компонент в С# Я не знаю, из чего делает тест this == null
необходимым?