Итак, я занимаюсь исследованием интерфейсов на F #. Я нашел эти 2 статьи на нем. MSDN и F# for fun and profit Но, к сожалению, они только глубокие.F # Как использовать интерфейс в отдельном модуле
ОБНОВЛЕНО
вот мой модуль с моими интерфейсами
//open statements omitted for brevity
module DrawingInterfaces =
///gets a string representation of the SVG code representation of the object
type IRepresentable_SVG =
abstract member getSVGRepresenation : unit -> string
//other interfaces omitted for brevity
В настоящее время в том же пространстве имен и физической папке также у меня есть это:
type lineSet (x1off,x2off,y1off,y2off,x1,x2,y1,y2,rot,rotOff,count) =
//tons of member vals omitted for brevity
member val x1Start = x1 with get, set
interface DrawingInterfaces.IRepresentable_SVG with
member __.getSVGRepresenation() =
let mutable svg = ""
let mutable currentx1 = x1Start
svg
Это используется, чтобы дать мне 2 ошибки, прежде чем я использовал __. обозначение для члена. Первая ошибка была на интерфейсной линии. И второй на линии участника. Ошибки были соответственно:
The type 'IRepresentable_SVG' is not defined
This instance member needs a parameter to represent the object being invoked.
Я был в состоянии установить первый, изменив порядок файла. Благодаря Джону Палмеру. Второй фиксированный./
После использования __. Обозначение Я смог избавиться от второй ошибки. Однако теперь появляется новая ошибка, когда я пытаюсь использовать члены типа в моей реализации интерфейса.
let mutable currentx1 = x1Start
x1Start показывает, что не определено. Мне нужно иметь возможность использовать значения, хранящиеся в моих других членах, в моей реализации.
F # чувствителен к порядку составления файла. Файл определения над файлом использования в Visual Studio? –
Изменение порядка компиляции задало первую проблему. –