오늘의 연구
2023. 12. 24. 15:53ㆍ카테고리 없음
뜬금없지만 공부를 하다가 프리팹의 인스턴스화 과정이 궁금해서 고민해보았다.
하지만 그 질문을 해결하기 전에 또 궁금한것이 생겼는데
필드에서 바로 생성자를 호출하는것에 대하여 의문점을 가졌다.
그래서, 이렇게 3중으로 타고 타고 클래스를 계속 생성해보았따.
마지막 순서대로 생성이 되는것이 뭔가 상속관계와 비슷한 느낌이랄까?
좀 찾아보았는데, C#은 마이크로소프트에서 개발한 것 이니까 여윽시 마이크로소프트 공식 문서에서 찾아보면 된다.
공식 문서에 따르면 이렇다고 한다. 따라서 처음 Test 클래스가 있는데 필드에서 초기화를 진행하니까 TestClass라는 놈이 초기화가 될것이다.
하지만 저 말에 따르면 필드는 인스턴스에 대한 생성자를 호출하기 직전에 필드가 초기화가 되니까..TestClass의 필드가 초기화 될 것이고, TestClass는 TestRefClass라는 놈을 필드로 들고 있으니까 또 TestRefClass의 필드가 초기화 되겠지.
조금 머리가 복잡하긴 한데,
우선순위가 필드 초기화라는것을 보면,
a가 new B를 하면 B의 필드가 초기화 된다. 하지만 B의 필드에는 C가 있으니까 C가 초기화된다. 그리고 C가 초기화 되었으니 C의 생성자가 호출이 되고 B가 호출이 되고...뭐 이런 느낌인데 확실하게 맞는지는 모르겠다. 누군가 알려줬으면 좋겠는데...ㅜ
어쨋든 오늘은 여기까지! 나중에 더 파보는것으로.
메리크리스마스!