static 키워드
static 키워드는 C#에서 여러 개의 인스턴스가 공유하는 멤버
를 정의하는데 사용된다.
static으로 선언된 멤버는 해당 클래스에서 유일하게 존재
하고, 해당 클래스의 모든 인스턴스가 해당 멤버를 공유
한다.
클래스 내부에서 static으로 선언 되었다면 인스턴스를 생성하지 않고도 사용할 수 있다.
또, 이렇게 static
으로 선언된 스코프 내부에서 외부에 있는 변수,메서드,클래스 등에 접근 하기 위해서는 해당 외부 요소들도 static으로 선언되어야 한다.
정적(static) 요소들끼리만 서로 접근이 가능하다.
물론 내부에서 지역 요소들은 선언하고 사용할 수 있다.
static 변수
static 변수는 해당 클래스의 모든 인스턴스가 공유하는 정적 변수
class MyClass{
static int a = 1;
}
정적 변수
와 전역 변수
의 차이점
위의 static 키워드를 붙혀서 선언된 변수를 정적 변수
라고 한다.
정적 변수는 클래스 수준에서 유일하게 존재
하고, 클래스가 처음으로 로드될떄 초기화되어 프로그램이 종료될 때까지 유지된다.
반면 전역 변수
는 특정 범위에서 정의되고 선언된 변수로 해당 프로그램 전체에서 접근할 수 있는 변수
즉, 여러 클래스에서 접근
이 가능하고 프로그램이 실행되는 동안 계속해서 유지된다.
클래스 내부
에 static으로 선언된 변수는정적 변수
클래스 외부
에서 static으로 선언된 변수는전역 변수
static 메서드
static 메서드는 클래스 수준에서 인스턴스를 생성하지 않고도 호출할 수 있는 정적 메서드
인스턴스의 상태에 의존하지 않고 실행된다.
class MyClass{
public static int Add(int a, int b){
return a+b;
}
}
static 클래스
static 클래스는 인스턴스를 생성할 수 없는 클래스
입니다.
모든 멤버가 정적 멤버로만 이루어져 있다.
static 프로퍼티 (정적 속성)
static 인스턴스를 생성하지 않고도 접근
할 수 있는 프로퍼티.