我找不到用于编码继承基类B(用C#编写)的类型D和除基类隐式构造函数之外的构造函数的正确语法: C#代码: public class B{ private int _i; private float _f; public B() { _i = 0; _f = 0.0f; } public B(int i
C#代码:
public class B { private int _i; private float _f; public B() { _i = 0; _f = 0.0f; } public B(int i) { _i = 0; _f = 0.0f; } public B(int i, float f) { _i = i; _f = f; } }
F#代码:
type D() = inherit B() //how to inherit from other constructors ?
谢谢
我找到了办法,感谢 blog!type D = class inherit B new () = { inherit B() } new (i : int) = { inherit B(i) } new ((i,f) : int*single) = { inherit B(i, f) } end
是的,这有点麻烦,但就像Brian说的那样,并不是大多数情况.
编辑:
实际上,类/结束关键字并不是强制性的(因此我收回了我所说的关于繁琐的内容).
正如Brian在他的博客here上所说,F#通常推断出所定义的类型,使这些令牌变得不必要/多余.
type D = inherit B new () = { inherit B() } new (i : int) = { inherit B(i) } new ((i,f) : int*single) = { inherit B(i, f) }