tengo el siguiente tipo:F # opción de tipo en 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
donde el recursiva "Información de la lista" es una opción. O hay uno o no hay ninguno. Necesito usar esto desde C# pero obtengo errores. Este es un uso de muestra:
if (FSharpOption<Types.ListInfo>.get_IsSome(listInfo.LInfo))
{
Types.ListInfo subListInfo = listInfo.LInfo.Value;
HandleListInfo(subListInfo, n);
}
here listInfo es del tipo ListInfo como el anterior. Solo estoy tratando de verificar si contiene un valor y, si es así, quiero usarlo. Pero todos los accesos listInfo.LInfo dan el error "Propiedad, indexador o evento listInfo.LInfo no es compatible con el idioma ..."
¿Alguien que entiende por qué?
no creo que el problema no tiene nada que ver con el tipo de opción ... Se ve como una propiedad declarada en F # no se reconoce por C# –