gpt4 book ai didi

使用 F# 继承空引用异常

转载 作者:行者123 更新时间:2023-12-04 23:04:05 25 4
gpt4 key购买 nike

有什么办法可以使下面的代码工作?

open System.Collections.Generic

type Geometry<'t>(child: 't) =
let values = List()
member o.add (v: float) = values.Add v; child

and Line() as self =
inherit Geometry<Line>(self)
member o.length v = o.add v

let line = Line().length(50.0)

我明白了

System.NullReferenceException: Object reference not set to an instance of an object.



编辑:

调用以下代码来触发异常就足够了。
let line = Line()

动机是你可以做例如:
let line = Line().x1(10).y1(20).x2(30).y2(10).color("blue") // ...

并且您可以在所有几何图形(圆形、椭圆形、...)中重用公共(public)成员

最佳答案

open System.Collections.Generic

type Geometry<'t when 't :> Geometry<'t>>() =
let values = List()
member o.add (v: float) = values.Add v; o :?> 't

and Line() =
inherit Geometry<Line>()
member o.length v = o.add v

let line = Line().length(50.0)

关于使用 F# 继承空引用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16365223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com