Потому что .NET ведет себя здесь очень странно

Языки объектно-ориентированного программирования позволяют сравнивать любые типы. К сожалению,.NET делает это немного странно и следует странным правилам.

Это не делает сравнения простыми и предсказуемыми. В то время как оператор == действует как…