Ho il seguente tipo:Utilizzando F # opzione del tipo in C#
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
dove il ricorsiva "lista info" è un'opzione. O ce n'è uno o non c'è nessuno. Ho bisogno di usare questo da C# ma ottengo errori. Esempio di utilizzo:
if (FSharpOption<Types.ListInfo>.get_IsSome(listInfo.LInfo))
{
Types.ListInfo subListInfo = listInfo.LInfo.Value;
HandleListInfo(subListInfo, n);
}
qui listInfo è del tipo ListInfo come sopra. Sto solo cercando di verificare se contiene un valore e se è così voglio usarlo. Ma tutti gli accessi listInfo.LInfo danno l'errore "Proprietà, indicizzatore o lista eventiInfo.LInfo non è supportato dalla lingua ..."
Chi capisce perché?
Io non credo che il problema abbia a che fare con il tipo di opzione ... Sembra una proprietà dichiarata in F # non è riconosciuto da C# –