반응형
C# 정적 생성자 | Static Constructor
코딩으로 하다 보면 클래스에 static 멤버를 사용 하여
데이터를 공유 하여 사용 할 때가 있다.
물론, 고정된 값을 사용 할 때도 있지만
아래의 예제 처럼 해당 클래스나 정적 멤버가 호출 될 때
값을 초기화 하거나
클래스 인스턴스 생성 수에 상관 없이
처음 한번 생성 될 때만 작업을 하고 싶을 때가 있다.
이럴 때 정적 생성자(Static Constructor)를 사용 하면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
|
class SimpleClass
{
// Static variable that must be initialized at run time.
static readonly long baseline;
// Static constructor is called at most one time, before any
// instance constructor is invoked or member is accessed.
static SimpleClass()
{
baseline = DateTime.Now.Ticks;
}
}
|
cs |
위의 예제는 프로그램 어딘가에서 만약
Console.WriteLine( $" baseLine Time: {SimpleClass.baseLine}");
과 같이 SimpleClass.baseLine 을 호출 하면
이때 정적 생성자가 호출 되고
baseline = DateTime.Now.Ticks;
위 구문이 실행 되게 된다.
Console.WriteLine( $" baseLine Time: {SimpleClass.baseLine}");
를 여러번 호출 해도 정적 생성자는 최초 한번만 호출 되기 때문에
출력 값은 항상 같은 결과를 보여 준다.
반응형
'Programming' 카테고리의 다른 글
WSL로 윈도우 아이피 접속 포트 포워딩 (0) | 2023.05.23 |
---|---|
C++ Visual Studio Error 해결 | strcpy fopen fscanf chdir freopen | _CRT_SECURE_NO_WARNINGS (0) | 2023.01.09 |
visual c++/clr 프로그램 컴파일 에러 (0) | 2022.08.25 |
소스트리 로그인 실패 해결 | logon failed use ctrl c to cancel basic credential prompt (0) | 2022.08.22 |
C# string.Format 실수 소수점 자리 표시 | Format Specifier (0) | 2022.08.10 |