तो, तो कोडमैं कैसे Dictionary.TryGetValue रूप में एक ही व्यवहार लागू कर सकते हैं
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 लाइन ठीक काम करता है। आर 2, वी 2 लाइन बम; शिकायत c.TryGetValue एक tuple दिया जाना चाहिए। दिलचस्प बात यह है कि प्रत्येक पंक्ति में TryGetValue का हस्ताक्षर अलग है। बीसीएल संस्करण के समान व्यवहार को प्रदर्शित करने के लिए मैं अपना कस्टम कार्यान्वयन कैसे प्राप्त कर सकता हूं? या, एक और तरीका पूछा, चूंकि एफ # (ट्यूपल पैरामीटर, करीबी पैरामीटर, और बीसीएल पैरामीटर की अवधारणा है), और मुझे पता है कि करीबी और ट्यूपल-स्टाइल के बीच अंतर कैसे करें, मैं तीसरी शैली को कैसे मजबूर कर सकता हूं (ला बीसीएल विधियों)?
अगर यह अस्पष्ट है तो मुझे बताएं।
धन्यवाद। मैंने वास्तव में कोशिश की, लेकिन मुझे एहसास नहीं हुआ कि मुझे आउटएट्रिब्यूट की आवश्यकता है। मुझे लगता है कि byref <'v> पर्याप्त होगा। – pblasucci
byref स्वयं ही सी # में 'रेफरी' जैसा है (जैसा कि सी # 'आउट' के विपरीत है)। – Brian
आह, हाँ: रेफरी, बाहर ... बस मुझे किसी भी दिन tuples दे दो! – pblasucci