📅  最后修改于: 2021-01-01 04:34:03             🧑  作者: Mango
转换是将值的类型转换为其他所需类型的过程。它可以是原始类型或对象类型。
F#允许基本类型和对象类型的转换和转换。
let x : int = 44 // integer value
let y : byte = byte x // conversion integer to byte
printfn "y = %d" y // byte value
let z : int = int y // conversion byte into integer
printf "z = %d" z // integer value
输出:
y = 44
z = 44
F#允许我们使用:>运算符将一种类型的对象转换为另一种类型。该运算符用于向上转换对象。我们可以使用:?>运算符来向下转换对象。我们在以下程序中使用了这些运算符。让我们来看一个例子。
type BaseClass() =
class
member this.ShowClassName()=
printfn "BaseClass"
end
type DerivedClass() =
class
inherit BaseClass()
member this.ShowClassName()=
printfn "DerivedClass"
end
let baseClass = new BaseClass()
let derivedClass : DerivedClass = new DerivedClass()
baseClass.ShowClassName()
derivedClass.ShowClassName()
let castIntoBaseClass = derivedClass :> BaseClass // upcasting
castIntoBaseClass.ShowClassName()
let castIntoDerivedClass = baseClass :?> DerivedClass // downcasting
castIntoDerivedClass.ShowClassName()
输出:
BaseClass
DerivedClass
BaseClass