câu trả lời từ CMS là chắc chắn đúng. Đây chỉ là một bổ sung có thể cũng hữu ích. Trong F #, bạn thường muốn viết kiểu chỉ bằng các thuộc tính bất biến. Khi sử dụng cú pháp "initializer object", các thuộc tính phải được thay đổi. Một thay thế trong F # là để sử dụng tên đối số, mang đến cho bạn một cú pháp tương tự, nhưng giữ những điều bất di bất dịch:
type Person(name:string, ?birthDate) =
member x.Name = name
member x.BirthDate = defaultArg birthDate System.DateTime.MinValue
Bây giờ chúng ta có thể viết:
let p1 = new Person(name="John", birthDate=DateTime.Now)
let p2 = new Person(name="John")
Mã này đòi hỏi bạn phải ghi rõ tên, nhưng sinh nhật là một đối số tùy chọn với một số giá trị mặc định.
Nguồn
2008-12-16 18:19:41
Cảm ơn Tomas, nhưng trong trường hợp của tôi, Người đang ở trong một hội đồng khác và tôi không thể thay đổi nó :( –