문제.
public record Cate(string Nickname)
{
public string Nickname { get; set; }
}
요딴식으로 record 로 정의를 했다고 쳤을 때, 아래와 같이 인스턴스를 생성하면
var cate = new Cate("Greg");
cate.Nickname
의 값을 무엇일까요?
정답은 null 입니다.
왜냐믄…
public record Cate(string Nickname)
{
public string Nickname { get; set; }
}
요것은 빌드 후 아래와 같이 생성되부러요.
public class Cate
{
public Cate(string Nickname)
{
}
public string Nickname { get; set; }
}
즉, record 의 primary constructor 에 파라미터를 정의하고
동일한 이름의 property 를 새로 정의하면
빈 생성자 형태로 class 가 생성됩니다.
결론!
record 에 property 를 정의할 때 primary constructor 를 추가했다면
동일한 이름으로 property 를 수동으로 정의하지 말자!
되겠슴다…
다들 아시는 내용이겠지만 아무생각없이 습관대로 했다가 뒤통수 맞는 불상사가 없기를 바라며... 끄적여봤슴다... ㅇㅅㅇ/