31 lines
694 B
Forth
31 lines
694 B
Forth
module Extensions
|
|
|
|
module MyModule1 =
|
|
|
|
// Define a type.
|
|
type MyClass() =
|
|
member this.F() = 100
|
|
|
|
// Define type extension.
|
|
type MyClass with
|
|
member this.G() = 200
|
|
|
|
module MyModule2 =
|
|
let function1 (obj1: MyModule1.MyClass) =
|
|
// Call an ordinary method.
|
|
printfn "%d" (obj1.F())
|
|
// Call the extension method.
|
|
printfn "%d" (obj1.G())
|
|
|
|
// Define a new member method FromString on the type Int32.
|
|
type System.Int32 with
|
|
member this.FromString( s : string ) =
|
|
System.Int32.Parse(s)
|
|
|
|
let testFromString str =
|
|
let mutable i = 0
|
|
// Use the extension method.
|
|
i <- i.FromString(str)
|
|
printfn "%d" i
|
|
|
|
testFromString "500" |