繁体   English   中英

在f#match语句中如何匹配类型byte []?

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

我正在尝试从.net类型中查找DbType枚举值。 我正在使用match语句。 但是,我不知道如何在类型byte []上进行匹配。

let dbType x =
  match x with
  | :? Int64 -> DbType.Int64
  | :? Byte[] -> DbType.Binary // this gives an error
  | _ -> DbType.Object

如果有更好的方法来映射这些类型,我会提出建议。

byte[]byte arrayarray<byte>都是同义词,但是在这种情况下,只有最后一个可以不带括号:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM