我找不到合适的语法来编码继承基类B(用C#编写)的D类型及其基类隐式构造函数以外的构造函数:
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所说的那样,并不是大多数情况。
编辑:
实际上,class / end关键字不是强制性的(因此,我收回了我所说的麻烦)。
正如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)
}