Хорошо, так это сводит меня с ума. как этот код может не работать?
open System.Collections.Generic
type testing (a:int)=
let test = [Empty]
member p.GetHashCode =
fun () -> printfn "called hash";0
override p.Equals(other:obj) =
printfn "called equals"
true
interface IEquatable<testing> with
override p.Equals(other:testing) =
true
static member op_Equality (other:obj) = printfn "called op" ;true
let dict2 = new Dictionary<testing,int>()
dict2.[(testing 50)] <- 50
dict2.[(testing 50)]
Фрагмент умирает при попытке извлечь из словаря и не вызывает ни один из предоставленных методов. Я сегодня просто сумасшедший или здесь что-то не так?