1
Я пытаюсь определить метод расширения для общего класса (Xceed.Wpf.Toolkit.NumericUpDown
), но ограничить его общим значением Nullable<_>
, однако я не могу понять синтаксис. Суть того, что я хочу, этоВложенные общие ограничения в f #
type NumericUpDown<Nullable<_>> with
member x.getVal() = x.Value.GetValueOrDefault()
member x.setVal v = x.Value <- Nullable v
но это не скомпилируется. Я пробовал несколько вариантов этой темы, но ничего не работает. Есть ли способ сделать это?
Привет - я видел в последнее время, что вы хотите метод расширения - но к сожалению, я не знаю класс, который вы пытаетесь сделать достаточно, чтобы показать код. Лучшее, что я мог бы дать, это проверка времени выполнения ('match x with |:? System.Nullable <'a> как nA -> nA.Value.GetValueOrDefault() | _ -> Unchecked.defaultof <'a>') – Carsten
Это невозможно с F # -строчные расширения. Вы не можете распространять конкретный случай общего типа. – Daniel
@ Daniel просто fyi см. Ниже. –