Tôi đã thiết kế một nhà cung cấp loại đơn giản cung cấp các loại tùy thuộc vào thông số của tôi. Tôi muốn biết nếu nó có thể xác định GivenTypeDefinitions mà sẽ kế thừa một GivenTypeDefinition khác?f # type thừa kế nhà cung cấp
Tôi biết rằng tĩnh tôi có thể làm như sau:
type People() = class end
type Student() =
inherit People()
type Teacher() =
inherit People()
và sau đó tôi có thể mô hình trận đấu như thế này sử dụng Loại Kiểm tra mẫu:
let f (x:People) =
match x with
| :? Student -> "Student"
| :? Teacher -> "Teacher"
| _ -> "Nothing !!"
Những gì tôi muốn làm trong Loại của tôi nhà cung cấp là tạo ra GivenTypeDefinitions kế thừa một ProvisionTypeDefinition khác. Như vậy khi tôi sử dụng nhà cung cấp kiểu để tạo ra các kiểu mà tôi có thể khớp mẫu trên chúng (ví dụ, tôi biết rằng khi chạy một trong các kiểu này sẽ được instanciated nhưng tôi không biết cái nào ngoại trừ nó là một trong những ProvisionTypeDefinitions).
Cảm ơn bạn đã dành thời gian!
Cảm ơn sự giúp đỡ của bạn :). Vấn đề với giải pháp này là TP không cung cấp DU hoặc Hồ sơ. Tôi sẽ không thể cung cấp loại 'Occupation' mà bạn đã mô tả. – Leleutch
Hi Leleutch, Tôi đã chỉnh sửa câu trả lời của mình để phù hợp với loại kiềm chế –