Исходя из фона C#, я пытаюсь назначить экземпляр класса другому экземпляру класса в F #, но я получаю сообщение об ошибке «Исключение инициализации типа»Класс F # присваивает значение объекта другому объекту
Мой код
//filename is CCPType.fs
module CCPType =
type CCPClass() = class
let mutable p = Unchecked.defaultof<int>
let mutable d = Unchecked.defaultof<int[,]>
member self.P
with get() = p
and set (value) = p <- value
member self.D
with get() = d
and set (value) = d <- value
end
//filename is Programme.fs
Module Start =
[<EntryPoint>]
let main argv =
let record = FileParser.ParseTextToCCPRecord(text) // returns CCPClass
let z = Optimiser.Execute(record) //arg is of type CCPClass
//filename is Optimiser.fs
module Optimiser =
let mutable ccpDataSet = CCPClass()
следующие фрагменты являются частью Optimiser.fs в модуле оптимизатора. Я попытался следующие
let Execute record =
ccpDataSet <- record
, и я также пытался
let Execute(record: CCPClass) =
ccpDataSet = new CCPClass()
ccpDataSet.P <- record.P
ccpDataSet.D <- record.D
, и я также пытался
let Execute(record: CCPClass) =
ccpDataSet <- new CCPClass()
ccpDataSet.P <- record.P
ccpDataSet.D <- record.D
, и я также пытался
let Execute record =
ccpDataSet.P <- record.P
ccpDataSet.D <- record.D
и я пробовал несколько разных способов, но я ill не может копировать один экземпляр класса в другой.
Я получаю сообщение об ошибке «Необработанное исключение типа« Исключение System.TypeInitializationException ».
«" ccpDataSet "выбрасывает исключение типа" System.TypeInitializationException "'.
Любые идеи? Спасибо
где ошибка? Можете ли вы предоставить минимальный, но полный пример, показывающий проблему? - Наверное, мне не нужно говорить вам, что это довольно много идиоматический F # здесь – Carsten
Что такое 'InnerException'? –
Внутреннее исключение - {System.NullReferenceException: ссылка на объект не установлена в экземпляр объекта. в. $ Optimiser..cctor() в D: \ CCP \ Optimiser.fs: строка 19} –