Jeśli typ ogólny jest porównywany z null
(i tylko z null
), powoduje to, że kompilator ogranicza typ zarówno jako zerowy (co jest ok), jak i równoważny.Dlaczego zerowanie powoduje ograniczenie równości w F #?
Dlaczego ten drugi? Wydaje się, że po prostu porównanie z null
powinno być ok dla typów, które są zerowalne, ale nie obsługują równości.
Wiem, że mogę użyć Unchecked.equals
, aby uzyskać tylko zerowe ograniczenie, po prostu zastanawiam się, czy brakuje mi jakiegoś oczywistego powodu, dla którego ((=) null)
potrzebuje równoważnego argumentu.
Dobra uwaga - powinienem się tego domyślić :) –