정적 생성자(static constructor)는 기본 생성자에 static 예약어를 붙인 경우로 클래스에 단 한개만 존재할 수 있고, 

주로 정적 맴버를 초기화하는 기능을 한다.

class Sample
{
    static Sample()
    {
        Console.WriteLine("static constructor 생성");
    }
}

특징으로는 다음과 같이 있는데

 

#1. 매개변수를 포함할 수 없다.

#2. 클래스의 어떤 맴버든 최초로 접근하는 시점에 단 한번만 실행된다.

#3. 인스턴스 생성자를 통해 객체가 만들어지는 시점이 되면 다른 코드보다 우선적으로 실행된다.

 

다음은 생성 예제이다.

class Person
{
    public string name;

    public Person(string _name)
    {
        Console.WriteLine("constructor 생성");
        this.name = _name;
    }

    static Person()
    {
        Console.WriteLine("static constructor 생성");
    }
}

class Program
{
    static void Main(string[] args)
    {
        Person person = new Person("sample1");
        Console.WriteLine("--------------");
        Person person2 = new Person("sample2");
    }
}

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

getters & setters  (0) 2021.02.07
구조체 (struct)  (0) 2021.02.06
Environment.NewLine  (0) 2020.12.06
for, foreach  (0) 2020.05.10
Ternary operator (삼항연산자)  (0) 2020.05.10