私は、自分のパラメータに応じて型を提供する単純型プロバイダを設計しました。他のProvidedTypeDefinitionを継承するProvidedTypeDefinitionsを定義することが可能かどうかを知りたいですか?f#型プロバイダの継承
私は静的に私は次の操作を行うことができることを知っている:
type People() = class end
type Student() =
inherit People()
type Teacher() =
inherit People()
と、この使用タイプのテストパターンのような、私はできるパターンマッチ:私は私のタイプにしたいと思っ何
let f (x:People) =
match x with
| :? Student -> "Student"
| :? Teacher -> "Teacher"
| _ -> "Nothing !!"
プロバイダーは、別のProvidedTypeDefinitionを継承するProvidedTypeDefinitionsを作成します。そのような型プロバイダを使用してそれらの型を生成すると、それらの型をパターン化できます(たとえば、実行時にこの型のインスタンスがインスタンス化されることはわかっていますが、それ以外の型はどれかが分かりません) )。
ありがとうございました!
ありがとうございました:)この解決策の問題は、TPがDUまたはレコードを提供しないことです。あなたが説明した '職業 'タイプを提供することはできません。 – Leleutch
こんにちはルルーシュ、 タイプ拘束に対応するために私の答えを編集しました –