생각 두 접시

static에 관하여

NaZZU 2024. 3. 20. 21:03

static 키워드는 변수 / 메소드 / 클래스가 인스턴스에 귀속되지 않고, 클래스에 귀속되게 한다.

사용 시 '인스턴스이름.메소드이름() ' 이 아니라

'클래스이름.메소드이름()'  로 사용해야 한다.

 

c#을 구성하는 최소의 단위인 클래스는 메소드에서 인스턴스화 되어야 한다.

하지만 메소드는 클래스의 바깥에서 따로 존재 할 수 없기 때문에, 인스턴스를 생성하기 위해 인스턴스의 메소드를 사용해야 하는 역설적인 상황이 발생한다.

이럴때 인스턴스 생성 전에 메모리에 올라가는 static을 사용한다.

가장 자주 보는 예시가 바로 static void main(string[] args) - 메인 메소드이다.

참고로 c++의 경우는 함수가 클래스 바깥에서 존재할 수 있다고 하여 메인 '함수' 라고 한다.