क्या कोई बता सकता है कि नीचे दूसरा उदाहरण संकलित क्यों नहीं होगा?क्यों 'कोड पर्याप्त सामान्य नहीं है'?
'टेस्ट 2' देता है "त्रुटि FS0670: इस कोड को पर्याप्त रूप से सामान्य नहीं है प्रकार चर^एक है क्योंकि यह अपने दायरे से बच जाएगा सामान्यीकृत नहीं जा सका।।"। मैं इस त्रुटि संदेश को समझने में असफल रहा।
// Test 1
type test1<'a> = | A of 'a
with
override t.ToString() =
match t with
| A a -> a.ToString()
// Test 2
type test2<'a> = | A of 'a
with
override t.ToString() =
match t with
| A a -> string a
// Test 3
type test3<'a> = | A of 'a
with
override t.ToString() =
match t with
| A a -> string (a :> obj)
'स्ट्रिंग' [ '' वास्तव में टी है -> स्ट्रिंग'] (http://msdn.microsoft.com/en-gb/library/ee340491.aspx), इसलिए इस सिद्धांत में काम करना चाहिए। हालांकि त्रुटि के लिए मेरे पास बेहतर स्पष्टीकरण नहीं है। –
ओह हाँ, मैं बस स्ट्रिंग फंस गया ;; प्रकार प्राप्त करने के लिए एफ # इंटरैक्टिव में। संभवतः वास्तव में स्ट्रिंग का उपयोग करके संकलन को इनपुट पर एक प्रकार को मजबूर करने के लिए मजबूर कर रहा है, और यह सबसे कम आम denominator के रूप में obj चुन रहा है? – Massif