> 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 # интерактива.Этот точный код находится в моем проекте F #, и компилятор обрабатывает его без жалоб.У меня происходит то же самое в нескольких проектах на C #.Код работает, как и ожидалось, в каждом случае.
Обычно я просто расширяю List <'T> статическим методом (делая это "способом F #"), но скрытие List.Add должно работать нормальнотоже.