📜  F#转换和转换

📅  最后修改于: 2021-01-01 04:34:03             🧑  作者: Mango

F#转换和转换

转换是将值的类型转换为其他所需类型的过程。它可以是原始类型或对象类型。

F#允许基本类型和对象类型的转换和转换。

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#类型转换(向上转换和向下转换)示例

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