我有一个Person,我希望使用属性初始值设定项初始化Name,使用构造函数初始化Age.
C#版本
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(int age)
{
Age = age
}
}
var person = new Person(20) { Name = "Alex" };
Run Code Online (Sandbox Code Playgroud)
我试过F#:
尝试1:语法无效
type Person = {
Name: string
Age: int
} with
static member create (age: int): Person =
{ this with Age = age }: Person
Run Code Online (Sandbox Code Playgroud)
尝试2:语法无效
type Person =
member val Name: string
member val Age: int
new(age: int)
this.Age = 13
Run Code Online (Sandbox Code Playgroud)
应该如此简单
type Person(age:int) =
member val Name = "" with get, set
member val Age = age with get, set
let person = Person(20, Name = "Alex")
Run Code Online (Sandbox Code Playgroud)