반응형
개요
Static 필드는 인스턴스를 생성할 때마다 메모리에 새로 생성되는 Non-static 필드들과 다르게 프로그램 실행 후 해당 클래스가 처음으로 사용될 때 한 번 초기화되어 동일한 메모리를 사용한다.
Static 변수 (정적 변수)는 인스턴스에 종속적이지 않고 클래스에 종속적인 변수이다.
호출 시에는 [클래스명.변수 이름]으로 호출한다.
Static 메서드 (정적 함수) 또한 인스턴스에 종속적이지 않고 클래스에 종속적인 메서드이다.
마찬가지로 호출 시에는 [클래스명.메서드 이름]으로 호출한다.
Static 메서드에서는 정적 변수가 아닌 일반 멤버 변수를 호출할 수는 없다.
Static 클래스 (정적 클래스)는 모든 클래스 멤버가 static으로 선언되어야 하고 생성자를 만들 수 없다. (Static 클래스는 객체를 생성할 수 없기 때문), 생성자를 만들 때에는 정적 생성자로 만들어줘야 한다.
유니티에서는 싱글톤 패턴을 활용할 때 자주 쓰인다.
예시
public class StaticTestClass
{
public static int score;
}
static 변수를 선언하고
public class MainClass
{
public void Main()
{
StaticTestClass.score = 10;
}
}
인스턴스화 하지 않고 클래스에서 바로 변수를 호출해서 사용한다.
참조
https://wergia.tistory.com/180
https://www.csharpstudy.com/CSharp/CSharp-static.aspx
반응형
'언어 > C#' 카테고리의 다른 글
[C#] 프로퍼티 (1) | 2022.09.24 |
---|---|
[C#] Generic (0) | 2022.03.22 |
[C#] delegate (0) | 2021.10.18 |