Expression objet
Présentation
let makeResource (resourceName: string) =
printfn $"create {resourceName}"
{ new System.IDisposable with
member _.Dispose() =
printfn $"dispose {resourceName}" }Implémenter 2 interfaces
let makeDelimiter (delim1: string, delim2: string, value: string) =
{ new System.IFormattable with
member _.ToString(format: string, _: System.IFormatProvider) =
if format = "D" then
delim1 + value + delim2
else
value
interface System.IComparable with
member _.CompareTo(_) = -1 }
let o = makeDelimiter("<", ">", "abc")
// val o : System.IFormattable
let s = o.ToString("D", System.Globalization.CultureInfo.CurrentCulture)
// val s : string = "<abc>"
let i = (d :?> System.IComparable).CompareTo("cde") // ❗ Dangereux
// val i : int = -1Mis à jour