gpt4 book ai didi

inheritance - F#中的类型继承

转载 作者:行者123 更新时间:2023-12-04 22:38:16 24 4
gpt4 key购买 nike

我找不到正确的语法来编码继承基类 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

是的,这有点麻烦,但就像布莱恩所说的那样,这不是大多数情况。

编辑:
实际上, class/end 关键字不是强制性的(所以我收回我所说的繁琐)。
正如布赖恩在他的博客中所说 here , F# 通常会推断所定义的类型,从而使这些标记变得不必要/冗余。
type D =
inherit B

new () = {
inherit B()
}
new (i : int) = {
inherit B(i)
}
new ((i,f) : int*single) = {
inherit B(i, f)
}

关于inheritance - F#中的类型继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1619567/

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