Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 没有参数列表的类定义_F# - Fatal编程技术网

F# 没有参数列表的类定义

F# 没有参数列表的类定义,f#,F#,F#接受以下内容: type Abc = member this.A = 10 由于未提供参数列表,因此没有默认构造函数。能否将构造函数添加到Abc?如果没有,可以用Abc做什么 我想不出这个有什么用处,但你可以做两件事 继承,尽管派生类型也不能是实例化的 使用静态成员扩展它(尽管使用模块可以更好地实现这一点,模块也可以扩展) 输入Abc= 成员:A=10 [] 类型Def= 继承Abc 输入Abc和 静态成员Foo()=() 在C#中,接口或抽象类的代码契约定义在“契约类”中,该“

F#接受以下内容:

type Abc =
    member this.A = 10

由于未提供参数列表,因此没有默认构造函数。能否将构造函数添加到Abc?如果没有,可以用
Abc
做什么

我想不出这个有什么用处,但你可以做两件事

  • 继承,尽管派生类型也不能是实例化的
  • 使用静态成员扩展它(尽管使用模块可以更好地实现这一点,模块也可以扩展)
  • 输入Abc=
    成员:A=10
    []
    类型Def=
    继承Abc
    输入Abc和
    静态成员Foo()=()
    

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

    与往常一样,这是一个很好的答案。谢谢