2011-05-12 13 views
7

मैं .NET प्रकारों से डीबीटाइप गणना मूल्यों को देखने का प्रयास कर रहा हूं। मैं एक मैच स्टेटमेंट का उपयोग कर रहा हूँ। हालांकि मैं यह नहीं समझ सकता कि बाइट [] पर कैसे मिलान करें।मैं बाइट [] प्रकार से कैसे मेल करूं?

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

यदि इन प्रकारों को मैप करने का बेहतर तरीका है, तो मैं सुझावों के लिए खुला होगा।

उत्तर

10

byte[], byte array, और array<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 
+1

TMTOWTDI - एफ # स्थिर टाइप किया भाषाओं के पर्ल है। – Daniel

संबंधित मुद्दे