当前位置 : 主页 > 手机开发 > 其它 >

在F#中键入继承

来源:互联网 收集:自由互联 发布时间:2021-06-19
我找不到用于编码继承基类B(用C#编写)的类型D和除基类隐式构造函数之外的构造函数的正确语法: C#代码: public class B{ private int _i; private float _f; public B() { _i = 0; _f = 0.0f; } public B(int i
我找不到用于编码继承基类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说的那样,并不是大多数情况.

编辑:
实际上,类/结束关键字并不是强制性的(因此我收回了我所说的关于繁琐的内容).
正如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)
    }
网友评论