Итак, учитывая затем следующий код
type MyClass () =
let items = Dictionary<string,int>()
do
items.Add ("one",1)
items.Add ("two",2)
items.Add ("three",3)
member this.TryGetValue (key,value) =
items.TrygetValue (key,value)
let c = MyClass ()
let d = Dictionary<string,int> ()
d.Add ("one",1)
d.Add ("two",2)
d.Add ("three",3)
И следующий код теста
let r1,v1 = d.TryGetValue "one"
let r2,v2 = c.TryGetValue "one"
Линия r1, v1 работает нормально. Линейные бомбы r2, v2; Жалоба c.TryGetValue должна иметь кортеж. Интересно, что в каждой строке подпись TryGetValue отличается. Как я могу заставить мою собственную реализацию показывать то же самое поведение как версия BCL? Или, если спросить по-другому, так как F # имеет (неявно) концепцию параметров кортежа, параметров карри и параметров BCL, и я знаю, как различать карри и стиль кортежа, как я могу форсировать третий стиль (как методы BCL )?
Дайте мне знать, если это неясно.