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

sounds good님의 프로필 이미지

작성한 질문수

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

Sound Manager #3

Clear 함수에 쓰이는 static 구문

해결된 질문

20.08.12 19:46 작성

·

210

3

안녕하세요

Managers의 Clear함수에 static이 설정이 되어있어서, SceneManagerEx에서 Managers에 대한 인스턴스를 생성하지 않고도 Clear 함수를 호출할 수 있는것 같습니다.

그렇다면  보통 static 함수를 어느 경우에 써야 하는지 궁금합니다.

제가 나름대로 생각해본 경우로는 다음과 같은 경우가 있을것 같습니다.

1) 공용 변수/함수를 설정하는 경우 (e.g. count++, Extension)

2) 인스턴스를 생성하기 귀찮은 경우? (Clear?)

또는 Clear 함수에 static을 설정하신 이유가 있는지 궁금합니다~!

답변 1

2

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

2020. 08. 12. 21:22

사실 딱히 정해진 규칙이 있는 것은 아니고,
말씀주신 1, 2 번 모두 타당한 이유에 해당한다고 볼 수 있습니다.

static이 붙지 않은 함수는 특정 Instance에 종속된(즉 static이 아닌) 변수에 접근할 수 없는데,
애당초 그래도 딱히 상관없다면,
class 자체에 위치한 '공용' 함수니까 static을 붙여주는 것도 합리적이겠죠.
Console.Write 같은 것이 이런 케이스가 되겠습니다.
그리고 경우에 따라 붙여도 그만, 안 붙여도 그만인 경우가 있는데
그럴 땐 사실 어느쪽을 선택해도 상관 없습니다.