gpt4 book ai didi

f# - 没有参数列表的类定义

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

F# 接受以下内容:

type Abc =
member this.A = 10

由于没有提供参数列表,因此没有默认构造函数。可以在 Abc 中添加构造函数吗? ?如果没有,可以用 Abc 做什么?

最佳答案

我想不出这个有很多用途,但你可以做两件事

  • 继承自它,尽管派生类型也不能实例化
  • 用静态成员扩展它(虽然用模块更好地实现,也可以扩展)

  • type Abc =
    member this.A = 10

    [<Class>]
    type Def =
    inherit Abc

    type Abc with
    static member Foo() = ()

    在 C# 中,接口(interface)或抽象类的代码契约在“契约类”中定义,该契约类必须标记为抽象并具有私有(private)构造函数(即它是不可实例化的)。在我看来,这是实现这一目标的更好方法。但是 C# 不支持无构造函数的类。

    关于f# - 没有参数列表的类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23395324/

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