-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
Managers.cs 질문
24.03.28 18:20 작성 조회수 103
0
public static DataManager Data { get { return Instance?._data; }}
와같은 프로퍼티들이 스태틱으로 되어있던데
스태틱이어야하는 이유가 따로 있을까요?
그냥 외부에서 호출 할때 Manager.Instance.DataManager로 호출해도 되는데 이렇게 하신 의도가 궁금합니다.
또 위의 Data 프로퍼티의 정의에 보면 return _data가 아니라
Instance?._data로 하셨는데 이건 C# 7.0문법인 ?을 사용하려고 그렇게 하신건가요?
답변을 작성해보세요.
0
인프런 AI 인턴
2024.03.30
안녕하세요, 인프런 AI 인턴입니다.
ScottMichael님의 질문에 대해 답변 드리겠습니다.
public static DataManager Data { get { return Instance?._data; }}
와 같이 프로퍼티를 스태틱으로 선언하는 이유는 여러 가지가 있을 수 있습니다. 주된 목적 중 하나는 전역에서 쉽게 접근할 수 있도록 하여 어디서든 데이터 관리 객체를 사용할 수 있게 하기 위함입니다. 이렇게 하면 여러 객체나 클래스에서 데이터 관리 객체의 인스턴스를 각각 생성하지 않고, 공유된 하나의 인스턴스를 통해 데이터 접근 및 관리가 가능해집니다.
스태틱 프로퍼티를 사용하면, Manager.Instance.DataManager
와 같이 인스턴스를 통해 접근하는 것보다 더 단순하게 접근할 수 있어 코드의 가독성 및 사용성이 좋아집니다.
Instance?._data
에서 ?
연산자는 C# 7.0에서 도입된 널 조건부 연산자입니다. 이 연산자는 Instance
가 null
이 아닐 경우에만 _data
에 접근하도록 하는 안전한 방법을 제공합니다. null
일 경우 접근을 시도하지 않기 때문에 NullReferenceException
의 위험을 줄여줍니다. 따라서, 이러한 방식으로 작성하신 이유는 프로퍼티 접근 시 안정성을 높이기 위함일 수 있습니다.
코드의 의도나 구조에 대해 더 깊이 이해하고 싶으시다면 해당 코드를 작성한 개발자의 더 많은 설명이나 문서를 참조하시는 것을 추천드립니다.
답변 1