Llamo a funciones en el marco XNA desde F # que aceptan valores Nullable. Ahora, en C#, usted acaba de llamar:Nullablle <> y "nulo" en F #
foo(arg1, arg2, null, arg4)
Ahora, he intentado que en Fa #, pero no le gusta. Dice: "Error 9 No coincide con la restricción. El tipo 'a no es compatible con el tipo System.Nullable. El tipo' System.Nullable 'no tiene' null 'como valor apropiado."
Entiendo por qué sucede esto, más o menos, pero parece realmente inconveniente. Todo lo que estoy haciendo ahora es hacer la vida más fácil, en lugar de escribir (Nullable<Rectangle>)null
repetidamente cada vez que llamo a la función, acabo de hacer let nullRect = (Nullable<Rectangle>)null
, y uso nullRect. Esto parece realmente estúpido, especialmente porque tendré que hacer eso para cada tipo de nullable con el que interactúo. ¿Hay una manera mejor y más idiomática de manejar esto?
Como nota al margen, esto se puede simplificar a '[] let nl = System.Nullable <_>()'. F # puede inferir el resto de la firma. –
¡Eso es realmente bueno! No he tenido la oportunidad de probar la abreviatura de Tomas todavía. ¡Gracias por la sugerencia! – Perrako
@Tomas - buena captura, es mucho más bonita. – kvb