C#

static (정적 변수, 정적 함수, 정적 클래스)

잼잼재미 2023. 11. 23. 11:09

정적 변수


 - 정적 변수는 클래스로부터 객체를 생성하지 않아도 사용 가능

 - 클래스명.변수이름 으로 사용

 - 일반 멤버 변수는 객체가 생성될 때마다 각각 변수가 생기지만, 정적 변수는 동일한 메모리 사용

 

class Test
{
    public static int num;
}

static void Main(string[] args)
{
    Test.num = 1;         
}

 

 

정적 함수


 - 정적 함수도 클래스로부터 객체를 생성하지 않아도 사용 가능

 - 클래스명.함수이름 으로 사용

 - 정적 함수 내에서 정적 변수가 아닌 일반 멤버 변수를 호출할 수 없음

 

 class Test
{
    public static int num;

    public static int sum(int x)
    {
        return num + x;
    }
}

static void Main(string[] args)
{
    Test.num = 5;
    Console.WriteLine(Test.sum(10));	// 15 출력
}

 

 

정적 클래스


 - 모든 멤버가 정적 변수 혹은 정적 함수로 이루어짐

 - 객체를 생성할 수 없음

 - 정적 생성자를 가질 수 있음 (접근 제한자, 매개변수 사용 불가)

 - 클래스명.변수이름 또는 클래스명.함수이름 으로 사용

 

public static class StaticTestClass
{
    public static int score;

    // 정적 생성자
    static StaticTestClass()
    {
        score = 10;
    }

    public static void StaticFunction()
    {
        score = 20;
    }
}

static void Main(string[] args)
{
    Console.WriteLine(StaticTestClass.score);	// 10 출력

    StaticTestClass.score = 15;
    Console.WriteLine(StaticTestClass.score);	// 15 출력

    StaticTestClass.StaticFunction();
    Console.WriteLine(StaticTestClass.score);	// 20 출력
}

'C#' 카테고리의 다른 글

절대값 구하기  (1) 2023.12.06
삼각함수  (0) 2023.12.04
문자열 빌더 (StringBuilder)  (0) 2023.11.14
Nullable 형  (0) 2023.11.14
LINQ  (0) 2023.11.14