У меня есть следующий тип:
and ListInfo() =
let mutable count = 0
// This is a mutable option because we can't have an infinite data structure.
let mutable lInfo : Option<ListInfo> = None
let dInfo = new DictInfo()
let bInfo = new BaseInfo()
member this.BaseInfo = bInfo
member this.DictInfo = dInfo
member this.LInfo
with get() = lInfo
and set(value) = lInfo <- Some(value)
member this.Count
with get() = count
and set(value) = count <- value
, где рекурсивная «информация о списке» является опцией.Либо есть, либо его нет.Мне нужно использовать это из C #, но я получаю ошибки.Это пример использования:
if (FSharpOption<Types.ListInfo>.get_IsSome(listInfo.LInfo))
{
Types.ListInfo subListInfo = listInfo.LInfo.Value;
HandleListInfo(subListInfo, n);
}
здесь listInfo имеет тип ListInfo, как указано выше.Я просто пытаюсь проверить, содержит ли оно значение, и если да, то хочу его использовать.Но все обращения к listInfo.LInfo выдают ошибку «Свойство, индексатор или событие listInfo.LInfo не поддерживается языком ...»
Любой, кто понимает, почему?