Первое, что обычно проверяет любая реализация Equals: «это правильный тип».И UserStatus
- это , а не , то же самое, что и byte
.
(на самом деле, это происходит только потому, что вы в штучной упаковке предметов черезваше несовместимое использование Equals
; на уровне IL они неразличимы, пока в штучной упаковке)
Вы должны сравнить их как элементы того же типа .Чтобы позаимствовать код из byte
:
public override bool Equals(object obj)
{
return ((obj is byte) && (this == ((byte) obj)));
}