我试图弄清楚从通话中返回的obj是否属于某种类型.这是我的代码:
type MyType<'T>=
val mutable myArr : array
val mutable id : int
val mutable value : 'T
Run Code Online (Sandbox Code Playgroud)
并且在某些方法中,MyType在范围内......
let a = someFunThatReturnsObj() // a could be of type MyType
Run Code Online (Sandbox Code Playgroud)
如何确定a是否为MyType类型?
match a with
| :? MyType<int> as mt -> // it's a MyType<int>, use 'mt'
| _ -> // it's not
Run Code Online (Sandbox Code Playgroud)
如果你只关心MyType<X>一些未知的X,那么
let t = a.GetType()
if t.IsGenericType && t.GetGenericTypeDefinition() = typedefof<MyType<int>> then
// it is
Run Code Online (Sandbox Code Playgroud)