I am looking for a way to get the value of an F# option or use a default value if it is None. This seems so common I can\'t believe something predefined doesn\'t exist. Here
You could easily create your own operator to do the same thing.
let (|?) = defaultArg
Your C# example would then become
let getString() = (None:string option)
let test = getString() |? "This will be used if the result of getString() is None.";;
val getString : unit -> string option
val test : string = "This will be used if the result of getString() is None."
Here's a blog post that goes into a little more detail.
Edit: Nikon the Third had a much better implementation for the operator, so I updated it.
You're looking for defaultArg [MSDN] ('T option -> 'T -> 'T
).
It's often used to provide a default value for optional arguments:
type T(?arg) =
member val Arg = defaultArg arg 0
let t1 = T(1)
let t2 = T() //t2.Arg is 0