언어/C#

[C#] Static

겜도리도리 2021. 10. 14. 19:28
반응형

개요

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

 

[C#] static - 정적 변수와 정적 함수 그리고 정적 클래스

static - 정적 변수와 정적 함수 그리고 정적 클래스 static 키워드는 변수나 함수, 클래스에 정적 속성을 부여하는 것으로 클래스로부터 객체를 생성하지 않고 변수나 함수를 호출할 수 있도록 해

wergia.tistory.com

https://www.csharpstudy.com/CSharp/CSharp-static.aspx

 

C# 정적 static - C# 프로그래밍 배우기 (Learn C# Programming)

C# static 메서드 정적(Static) 메서드는 인스턴스 메서드와는 달리 클래스로부터 객체를 생성하지 않고 직접 [클래스명.메서드명] 형식으로 호출하는 메서드이다. 이 메서드는 메서드 앞에 static 이

www.csharpstudy.com

 

반응형

'언어 > C#' 카테고리의 다른 글

[C#] 프로퍼티  (1) 2022.09.24
[C#] Generic  (0) 2022.03.22
[C#] delegate  (0) 2021.10.18