C#에서 정적 클래스 (static class)는 특별한 종류의 클래스로 객체의 인스턴스를 생성하지 않고 사용할 수 있는 클래스를 말한다.
보통 유틸리티 함수들, 헬퍼 함수들을 제작하는데 사용된다.
Static 클래스를 사용하는 여러가지 이유는
1. 객체를 인스턴스 생성 없이 사용한다는 점
2. 전역에서 접근이 용이하다는 점
3. 네임스페이스를 통해 그룹화하여 코드의 구성과 가독성을 개선할 수 있다는 점
등등 많은 이유가 있지만
가장 큰 이유는 인스턴스가 필요하지 않기 때문에 더 적은 공간을 차지한다는 점이라고 생각한다.
예시
public static class MathUtility
{
public static int Add(int a, int b)
{
return a + b;
}
public static int Minus(int a, int b)
{
return a - b;
}
//todo
}
사용
public class MathClass
{
public void Main()
{
int result1 = MathUtility.Add(1, 2);
int result2 = MathUtility.Minus(1, 2);
}
}
MathClass의 Main함수에서 보듯
MathUtility 클래스를 인스턴스화 하지 않아도 Add, Minus를 사용하는 코드이다.
Static 클래스를 사용하며 주의할 점은
정적 클래스의 함수가 상태를 갖고 있다면 멀티스레드 환경이라면 Thread-safe하지 않을 수 있다는 점이다.
따라서 정적 클래스를 설계할 때는 각 함수가 독립적이며 상태를 공유하지 않도록 주의해야한다.
'프로그래밍 > C#' 카테고리의 다른 글
Partial Class를 사용하는 이유 (0) | 2023.08.01 |
---|---|
C#과 다중 상속 (0) | 2023.08.01 |
C# Array, List, ArrayList 차이 (0) | 2023.04.23 |
C# String과 StringBuilder (0) | 2023.04.15 |
우선순위 큐? - 근데 이제 SortedDictionary 를 곁들인... (0) | 2023.04.15 |