tôi có các loại sau đây:Sử dụng F # Lựa chọn Gõ vào 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
nơi đệ quy "thông tin danh sách" là một lựa chọn. Hoặc là có một hoặc không có. Tôi cần phải sử dụng này từ C# nhưng tôi nhận được lỗi. Đây là cách sử dụng mẫu:
if (FSharpOption<Types.ListInfo>.get_IsSome(listInfo.LInfo))
{
Types.ListInfo subListInfo = listInfo.LInfo.Value;
HandleListInfo(subListInfo, n);
}
đây listInfo là loại ListInfo như trên. Tôi chỉ cố gắng kiểm tra xem nó có chứa một giá trị không và nếu tôi muốn sử dụng nó. Nhưng tất cả các accessIn listInfo.LInfo cho lỗi "Property, indexer hoặc eventInfo.LInfo không được hỗ trợ bởi ngôn ngữ ..."
Bất cứ ai hiểu tại sao?
Tôi không nghĩ rằng vấn đề có bất cứ điều gì để làm với các loại Tùy chọn ... Nó trông giống như một tài sản đã kê khai trong F # không được công nhận bởi C# –