• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

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

20.11.14 14:38 작성 조회수 151

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

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

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