我正在尝试从 .net 类型中查找 DbType 枚举值。我正在使用匹配语句。但是我无法弄清楚如何匹配类型字节 []。

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

关于ado.net - 在 f# 匹配语句中,如何匹配字节 [] 类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37348775/

10-15 08:09