2010-12-13 6 views
0

Es ist schwer zu erklären, aber ich möchte Delegate Conn von useConnection zu x.reportToDB verwenden, wie kann ich es tun?So verwenden Sie Parameter aus Expr-Verwendung

danke.

@Tim Robinson, ja, ich weiß nicht über Conn dort und das ist ein Problem, das ich lösen will, warum denken Sie, dass Lambda hier eine schlechte Idee ist?

+0

Dieser Code sieht nicht, wie es derzeit kompiliert - I glaube nicht, dass die erste Zeile eingerückt werden sollte, und der Code nach dem Kommentar muss eine Lambda-Funktion sein –

+0

Lamba ist eine gute Idee :). Du verwendest momentan keins. –

Antwort

1

scheint eine Funktion zu wünschen, die eine MySqlConnection dauert. Es liefert diese Funktion mit dem gewünschten Verbindungsobjekt.

Das Update ist:

useConnection (fun conn (* here's your connection *) -> 
    let cmd = new MySqlCommand(Connection = conn) 
    // etc. 

Edit: Es ist vielleicht klarer mit Typenannotationen zum useConnection Funktion hinzugefügt:

let useConnection (expr : MySqlConnection -> 'a) : 'a = 
    let Expr(conn : MySqlConnection) : 'a = 
    // etc. 
+0

Aber ich habe dort schon meine Verbindung mit expr (conn) eingefügt – Cynede

+0

Sie haben sie in die 'useConnection' Funktion eingefügt, aber Sie holen sie nicht in' x.reportToDB'. Wenn Sie Ihren Code kompilieren, sollten Sie einen Syntaxfehler innerhalb des großen Blocks am unteren Rand bekommen. –

+0

funktioniert Ihr Code aber so, wie ich es möchte? Ich meine, ich habe immer noch verwirrt über diesen Spaß conn -> – Cynede