Как передать Nullable <int>в хранимую процедуру ... из F #? - PullRequest
1 голос
/ 15 марта 2009

Я пытаюсь вызвать хранимую процедуру с выходным параметром из F #, поэтому мне нужно передать значение int?, инициализированное null. Однако F # сопротивляется моим попыткам, говоря, что объект не может быть нулевым. Я прочитал в Интернете, почему это так, но моя проблема остается - мне нужно вызвать эту хранимую процедуру. У кого-нибудь есть идеи, как я могу это сделать? Спасибо.

Ответы [ 2 ]

4 голосов
/ 15 марта 2009

Я не верю, что F # имеет преобразование из нуля -> пусто Nullable. Но если вы создадите экземпляр объекта Nullable, по умолчанию он не будет иметь значения. Это эквивалент передачи нуля в C # / VB.

myStoredProc (new System.Nullable<int>())
2 голосов
/ 16 марта 2009

Одна хорошая вещь, которую позволяет вам делать F #, - это объявлять «универсальное значение», чтобы вам не приходилось все время писать длинную конструкцию значения.

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

Теперь вы можете просто использовать gnull всякий раз, когда вам нужно передать NULL в качестве обнуляемой функции:

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

> foo gnull;;
val it : int = 0
...