35.4 정적 생성자와 인스턴스 생성자
생성자도 정적 생성자와 인스턴스 생성자로 구분할 수 있습니다. 클래스의 정적 멤버를 호출할 때 맨 먼저 호출되는 정적 생성자는 static 키워드로 만들며, 인스턴스 생성자는 public 키워드로 만듭니다.
이번에는 생성자의 여러 가지 종류를 사용해 보겠습니다. 다음 내용을 입력한 후 실행해 보세요.
여러 생성자 사용: ConstructorAll.cs
using System;
namespace ConstructorAll
{
public class Person
{
private static readonly string _Name;
private int _Age;
static Person() { _Name = "백승수"; } //① 정적 생성자
public Person() { _Age = 21; } //② 인스턴스 생성자: 매개변수가 없는 생성자
public Person(int _Age) //③ 인스턴스 생성자: 매개변수가 있는 생성자
{
this._Age = _Age; //this.필드 = 매개변수;
}
public static void Show() //④ 정적 메서드
{
Console.WriteLine("이름 : {0}", _Name);
}
public void Print() //⑤ 인스턴스 메서드
{
Console.WriteLine("나이 : {0}", _Age);
}
}
class ConstructorAll
{
static void Main()
{
//ⓐ 정적 생성자 실행
Person.Show(); //정적인 멤버 호출
//ⓑ 인스턴스 생성자 실행
(new Person()).Print(); //인스턴스 멤버 호출
(new Person(22)).Print();
}
}
}