2009-03-15 6 views
1

J'essaie d'appeler une procédure stockée avec un paramètre de sortie de F #, donc je dois passer une valeur int? initialisée à null. Cependant, F # résiste à mes tentatives, en disant que l'objet ne peut pas être nul. J'ai lu sur le web pour savoir pourquoi c'est mais mon problème reste - j'ai besoin d'appeler cette procédure stockée. Quelqu'un at-il des idées sur la façon dont je peux le faire? Merci.Comment passer un <int> Nullable dans une procédure stockée ... à partir de F #?

Répondre

4

Je ne crois pas que F # a une conversion de null -> vide Nullable. Mais si vous instanciez un objet Nullable, il n'aura aucune valeur par défaut. C'est l'équivalent de passer null en C#/VB.

myStoredProc (new System.Nullable<int>()) 
+0

Works pour moi, merci! –

2

Une bonne chose que F # vous permet de faire est de déclarer « valeur générique » de sorte que vous n'avez pas à écrire la construction lengthly de la valeur tout le temps.

let gnull = new System.Nullable<_>();; 

Maintenant, vous pouvez simplement utiliser gnull chaque fois que vous devez passer null comme annulable à une fonction:

> let foo (a:System.Nullable<int>) = 0;; 
val foo : System.Nullable<int> -> int 

> foo gnull;; 
val it : int = 0 
Questions connexes