【发布时间】:2014-12-03 21:31:46
【问题描述】:
我很难将以下 C# 代码转换为 F#:
class Foo
{
public Foo() { }
public Foo(string name) { }
}
class Bar : Foo
{
public Bar() : base() { }
public Bar(string name) : base(name) { }
public string Name { get; set; }
}
我第一次尝试关注,但是报错
“Bar”类型的构造函数必须直接或间接调用它的 隐式对象构造函数。使用对隐式对象的调用 构造函数而不是记录表达式。
type Foo() =
new(name:string) = Foo()
type Bar() =
inherit Foo()
new(name:string) = { inherit Foo(name) }
member val Name:string = null with get, set
然后我尝试了以下,但它现在在自动属性上报告错误
'member val' 定义只允许在具有主要的类型中 构造函数。考虑为您的类型定义添加参数”
type Foo() =
new(name:string) = Foo()
type Bar =
inherit Foo
new(name:string) = { inherit Foo(name) }
member val Name:string = null with get, set
【问题讨论】:
标签: f#