인프런 커뮤니티 질문&답변

이길호님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Singleton 패턴

12:54분 관련해서 질문드립니다.

해결된 질문

20.11.14 14:38 작성

·

195

4

C# 문법에 관련된 질문이긴 한데,

new GameObject { name = "@Managers"};

의 의미를 모르겠습니다.

분명 매개변수가 하나인 생성자인 것 같긴 한데,

GameObject 클래스의 생성자는  public GameObject(string name);

 되어있습니다.

그럼 제 생각에는 new GameObject("@Managers");

이렇게 만들어야 하지 않나 하고 생각하고 있습니다.

new GameObject { name = "@Managers"} 와

new GameObject ("@Managers")와 차이가 있습니까?

답변 2

1

이길호님의 프로필 이미지
이길호
질문자

2020. 11. 14. 15:11

오.... 빠른 답변 감사드립니다

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2020. 11. 14. 14:49

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를 이용해 세팅하는 방법은 그런 생성자가 없어도 원하는 프로퍼티를 세팅할 수 있습니다.