반응형
객체 초기화 구문
방금 F #으로 시작했는데 C # 3에서와 같이 개체 초기화를 수행하는 구문을 찾을 수 없습니다.
즉 다음과 같습니다.
public class Person {
public DateTime BirthDate { get; set; }
public string Name { get; set; }
}
F #에서 다음을 어떻게 작성합니까?
var p = new Person { Name = "John", BirthDate = DateTime.Now };
다음과 같이 할 수 있습니다.
let p = new Person (Name = "John", BirthDate = DateTime.Now)
CMS의 대답은 확실히 맞습니다. 다음은 도움이 될 수있는 추가 사항입니다. F #에서는 종종 변경 불가능한 속성을 사용하여 형식을 작성하려고합니다. "개체 이니셜 라이저"구문을 사용하는 경우 속성은 변경 가능해야합니다. F #의 대안은 명명 된 인수를 사용하는 것입니다. 이는 유사한 구문을 제공하지만 변경 불가능하게 유지합니다.
type Person(name:string, ?birthDate) =
member x.Name = name
member x.BirthDate = defaultArg birthDate System.DateTime.MinValue
이제 다음과 같이 작성할 수 있습니다.
let p1 = new Person(name="John", birthDate=DateTime.Now)
let p2 = new Person(name="John")
코드에는 이름을 지정해야하지만 생일은 일부 기본값이있는 선택적 인수입니다.
new
키워드를 생략하고 덜 자세한 구문을 사용할 수도 있습니다 .
let p = Person(BirthDate = DateTime.Now, Name = "John")
https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/constructors
참고 URL : https://stackoverflow.com/questions/371878/object-initialization-syntax
반응형
'programing tip' 카테고리의 다른 글
운영 체제 정보 얻기 (0) | 2020.08.28 |
---|---|
Retrofit 2.0 역 직렬화 된 오류 응답을 얻는 방법. (0) | 2020.08.28 |
object == null 또는 null == object? (0) | 2020.08.28 |
도메인에서 JavaScript 쿠키를 만들고 하위 도메인에서 읽기 (0) | 2020.08.28 |
소켓 홈브류를 통해 로컬 MySQL 서버에 연결할 수 없습니다. (0) | 2020.08.28 |