해결된 질문
작성
·
207
4
C# 문법에 관련된 질문이긴 한데,
new GameObject { name = "@Managers"};
의 의미를 모르겠습니다.
분명 매개변수가 하나인 생성자인 것 같긴 한데,
GameObject 클래스의 생성자는 public GameObject(string name);
되어있습니다.
그럼 제 생각에는 new GameObject("@Managers");
이렇게 만들어야 하지 않나 하고 생각하고 있습니다.
new GameObject { name = "@Managers"} 와
new GameObject ("@Managers")와 차이가 있습니까?
답변 2
1
1
https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/how-to-initialize-objects-by-using-an-object-initializer
new GameObject { name = "@Managers"};
는 기본 생성자를 사용하되 initializer를 이용해 초기화한 것이고,
new GameObject("@Managers")는 name을 받는 생성자로 만든건데
결과적으로는 똑같습니다.
다만 말씀하신 생성자 버전은 string name을 받는 생성자가 꼭 있어야 하지만
initializer를 이용해 세팅하는 방법은 그런 생성자가 없어도 원하는 프로퍼티를 세팅할 수 있습니다.