> type XList<'T> (_collection : seq<'T>) =
inherit List<'T> (_collection)
member this.Add _item = if not <| this.Contains _item then base.Add _item
new() = XList<'T> (Seq.empty<'T>);;
inherit List<'T> (_collection)
--------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stdin(47,9): error FS0945: Cannot inherit a sealed type
我的理解是,名單<「T>實際上不密封。沒有?F#:無法從列表中<'T> F#互動繼承
此外,這似乎在F#交互式以外工作得很好。這個確切的代碼在我的F#項目中,編譯器無需抱怨就可以處理它。我在幾個C#項目中發生了同樣的事情。代碼在每種情況下都按預期工作。
通常情況下,我只是用一個靜態方法(做它的「F#方法」)擴展List <'T>,但隱藏List.Add也應該很好。
謝謝,我知道SCGList和F#名單將最終咬我的屁股。現在打破我的櫻桃。 – MiloDC 2011-06-11 04:50:20