开发者

in f# match statement how do I match to the type byte[]?

I'm trying to lookup DbType enumeration values from .net types. I'm using a match statement. However I cannot figure out how to match on the type byte[].

let dbType x =
  match x with
  | :? Int64 -> DbType.Int64
开发者_如何学C  | :? Byte[] -> DbType.Binary // this gives an error
  | _ -> DbType.Object

If there is a better way to map these types, I would be open to suggestions.


byte[], byte array, and array<byte> are all synonymous, but in this context only the last will work without parentheses:

let dbType (x:obj) =
    match x with
    | :? (byte[])     -> DbType.Binary
    | :? (byte array) -> DbType.Binary // equivalent to above
    | :? array<byte>  -> DbType.Binary // equivalent to above
    | :? int64        -> DbType.Int64
    | _               -> DbType.Object
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜