Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här meddelandet ges när du försöker utföra ett typtest (:?) eller nedkastat (:?>) som alltid lyckas baserat på de typer som ingår, vilket gör åtgärden onödig.
Redundant typtest:
type Dog() =
member this.Bark() = printfn "Woof!"
let dog = Dog()
if dog :? Dog then
dog.Bark()
Redundant nedkastad:
type Cat(name: string) =
member this.Name = name
let cat = Cat("Kitten")
let sameCat = cat :?> Cat
printfn "It's still a %s" sameCat.Name
De två exemplen ovan gör att kompilatorn visar följande meddelande:
FS0067: This type test or downcast will always hold
Användning av :? operatorer och :?> är att föredra när du arbetar med:
- Basklasser när körningstypen kan skilja sig åt.
- Värden för typ
obj- eller gränssnittstyper.
Samarbeta med oss på GitHub
Källan för det här innehållet finns på GitHub, där du även kan skapa och granska ärenden och pull-begäranden. Se vår deltagarguide för mer information.