-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
안녕하세요. static 질문요
21.10.18 12:12 작성 조회수 134
2
답변을 작성해보세요.
2
Rookiss
지식공유자2021.10.18
그 부분이 처음에는 엄청 헷갈리긴 합니다.
우선 static 관련 아래 링크 참고 바랍니다.
https://www.inflearn.com/questions/97965
static은 [위치상으로 class 안에 있지만, 사실 class 설계 자체와는 무관하다]고 이해하면 됩니다.
어떤 함수가 static이라면, 특정 객체에 종속적이지 않은 함수라 볼 수 있는데,
이 때문에 static이 아닌 멤버 변수에 접근할 수 없습니다. (어떤 객체인지를 애당초 모르므로)
그래서 한 마디로 [static 함수 내부에선 static 멤버 변수에만 접근 가능하다]고 이해하면 되고,
static이 아닌 변수에 접근하려면 해당 객체를 직접 만들어서 사용해야 합니다.
static void Main()
{
Program p = new Program();
p.스태틱아닌변수 = 3; //<< 이런 식으로 static 아닌 변수 사용 가능
Knight k = new Knight();
k.hp = 3; // << 이런 식으로 static 아닌 변수 사용 가능
}
기본적으로 콘솔 프로그램에선 static void Main으로 메인함수가 무조건 static이기 때문에,
내부에서 static 변수를 만들어야 동일하게 static인 Main 함수에서 사용 가능합니다.
유니티랑 일반 C#이 다른건 당연히 아니구요. 유니티에서도 static 함수를 만들었다면,
내부적으로는 static 멤버변수를 활용해야 합니다.
답변 1