爲什麼不編譯下面的代碼?這是一個編譯器錯誤還是語言功能?什麼是最好的解決方法?仿製藥的故障
type A() as this =
let a = this.GetTypedObject<int>() // a
let b = this.GetTypedObject<string>() // b
member this.GetTypedObject<'T>() =
Unchecked.defaultof<'T>
Unchecked.defaultof <「T>被用於僅作爲示例,任何功能或構造呼叫可以被代替使用。
編譯器說,代碼在(a)行變得不那麼通用,並拒絕編譯行(b)。 我不能給出確切的編譯信息,因爲我在俄羅斯有他們:)。
將方法GetTypedObject()轉換爲let綁定並刪除<'T>以另一個我不喜歡的編譯器警告結束。我發現的唯一wokaround是將GetTypedObject <'T>()移入基類並公開。在此先感謝...
非常感謝!爲我工作就像一個魅力。 – Alexander
和優秀的解釋! – Alexander