클래스 함수에서 스테틱 멤버필드나 스테틱 함수를 사용할 수 있게 되는데 이 스테틱 멤버필드와 같은 경우에는 스테틱 생성자를 이용하여 멤버들의 값을 초기화 할수 있다. 그렇다면 이 스테틱 생성자는 언제 생성이 될것인가? 메인이 실행되는 시점? 궁금하다.


using System;
class StaticConst
{
public static int sInt=0;
static StaticConst()
{
 sInt = 10;
 Console.Write("sInt=" + sInt + " : static생성자!!!");
}
public StaticConst()
{
}
public static void InitSint(int a)
{
 sInt = a;
}
}
class StaticConstTest
{
public static void Main()
{
 Console.WriteLine("사용하지 않음");
 int a=StaticConst.sInt;
}
}
 



위와 같은 간단한 코드를 만들어 봤다. 그럼 결과는

StaticConst

사용하지 않음
sInt=10 : static생성자!!!



이와 같은 결과가 나왔다. 그렇다면 스테틱 생성자는 사용하지 않음 후 생성자의 메세지가 출력 됐으므로 스테틱 생성자는 스테틱 멤버를 접근하게 되면 스테틱 생성자가 생성됨을 알게 되었다.

참고로 스테틱 생성자의 특징!!
접근제어를 사용할 수 없음.
매개변수를 가질 수 없음.

Trackback url :: http://hahakbs.dothost.co.kr/trackback/49

댓글을 달아 주세요


div>