Я борюсь с настройкой функции f #, чтобы она могла принимать тип (от c#) Dictionary<keys, dynamic>
, где ключи - это просто тип enum, а c - это тип scruct, который содержит параметры.
Моя функция f # выглядит так:
let func (stores: Dictionary<keys, 'values>) =
let newObj1State = object1.addOne(stores.[keys.0])
let newObj2State = object2.addOne(stores.[keys.1])
let newSystemState = new Dictionary<keys, 'values>()
newSystemState.Add(keys.0, newObj1State);
newSystemState.Add(keys.1, newObj2State);
newSystemState
Проблема, с которой я столкнулся, заключается в том, что, когда компилятор f # запускает функцию, он видит, что 'values
сначала упоминается как тип Object1 поэтому он предполагает, что 'values
имеет тип Object1, и выдает эту ошибку вызывающей команде.
cannot convert from 'System.Collections.Generic.Dictionary<Types.keys, dynamic>' to 'System.Collections.Generic.Dictionary<Types.keys, Types.Object1>
Есть ли способ сохранить 'values
как generi c, чтобы он не выводил тип данных из кода?