카테고리 없음

TIL - 잘못알고 있던 프로퍼티

bugmin 2024. 5. 31. 21:30

프로퍼티에 대해 완전히 잘못생각하고 글을 기술했었다.

 

프로퍼티 != 변수 라는 사실이다.

 

프로퍼티는 프로퍼티지 변수가 아니다. 

 

나는 프로퍼티를 변수로만 생각했는데 프로퍼티는 그냥 프로퍼티다.

 

쉽게 생각하면 실제 변수(필드)는 생략되어있는거지 실제론 존재한다는 것이다.

 

그리고 또한 만일 get이나 set에 추가적인 로직을 통해 변수를 만들고 싶다하면 이는 프로퍼티만으론 힘들다.

 

    private static CharacterManager _instance;
    public static CharacterManager Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new GameObject("CharacterManager").AddComponent<CharacterManager>(); //방어 코드를 통해 하이레키창에 빼먹더라도 문제가 없음
            }
            return _instance;
        }
    }

 

이런식으로 get을 하여 필드 값이 null 일 때 값을 넣어줘야한다면 

따로 선언하지 않고서는 프로퍼티만으로는 필드 변수에 접근할 방법이 없다.

 

결론적으로 프로퍼티는 그냥 간단하게 get, set을 하기 쉽게 해주는 변수가 아닌 프로퍼티 그자체이고 변수는 생략이 가능하다는 것이다.

하지만 변수 값에 접근을 해야하는 경우가 생긴다면 이는 어쩔 수 없이 변수를 생략해서는 안되고 명시를 해야한다는 점이다.