我遇到了两种在F#中创建正确类型的null
值的方法:
// null with cast
let mutable x = null :> MyReferenceType
// Unchecked.defaultof
let mutable x = Unchecked.defaultof<MyReferenceType>
有没有理由偏爱一个?
答案 0 :(得分:4)
没有区别,有时候做事的方法不止一种。但是通常,Unchecked.defaultof()用于一般上下文中,在这种情况下您不提前知道类型,因此也不知道默认值。您当然知道MyReferenceType的默认值为null。因此,我同意第一个声明。实际上,即便如此,演员表也有点丑陋。大多数人可能只是将其写为
let x : MyReferenceType = null