したがって、次のコードが与えられます
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 パラメーターの概念があり、カリー化されたスタイルとタプル スタイルを区別する方法を知っているため、どうすれば 3 番目のスタイルを強制できますか (a la BCL メソッド) )?
これが不明な場合はお知らせください。