C# 시작할 때 이게 너무 헷갈렸다.
난 분명히 class 안에 메서드를 만들었을 뿐인데 자꾸 static이 어쩌구 하면서 실행이 안된다.
C의 static 과 별로 다른게 없긴 하다. 하지만 class를 사용할 때 여러가지 제약이 따른다.
static으로 선언된 메서드는 클래스 내의 다른 인스턴스 멤버들을 참조 할 수 없다.
클래스 앞에 static이 붙으면 그 클래스 내의 모든 메소드와 필드는 static으로 선언되어야하며
그 클래스는 인스턴스를 가질 수 없고 메서드를 사용할 때에는 무조건 클래스.메서드 의 형식으로 호출해야한다.
static키워드가 붙은 필드는 클래스가 초기화되는 시점에 메모리를 할당받고 그 뒤로 새로운 인스턴스가 생길 때도 같은 메모리 주소를 사용한다.
'공부 > C#' 카테고리의 다른 글
delegate 개념 (0) | 2018.12.17 |
---|---|
클래스 (0) | 2018.12.15 |
데이터타입과 변수 (0) | 2018.12.15 |