C# 12.0 기본 생성자(Primary Constructor) 소개

  • 2 minutes to read

C# 12.0에서는 기본 생성자라는 기능이 도입되었습니다. 이는 생성자의 선언과 readonly 멤버의 초기화를 더 간결하게 할 수 있게 해주는 기능입니다. 기본 생성자는 클래스 선언의 일부로 정의되며, 그 매개변수는 클래스 본문 내에서 직접 사용됩니다. 이로 인해 문법이 단순화됩니다.

다음은 C# 12.0을 사용하여 HomeController 클래스를 리팩터링하는 방법입니다:

// C# 12.0 이전 버전에서의 전통적인 생성자 접근 방식
public class HomeController : Controller
{
    private readonly ILogger<HomeController> _logger;

    public HomeController(ILogger<HomeController> logger)
    {
        _logger = logger;
    }

    public IActionResult Index()
    {
        return View();
    }
}

// C# 12.0에서의 기본 생성자 사용
public class HomeController(ILogger<HomeController> logger) : Controller
{
    private readonly ILogger<HomeController> _logger = logger;

    public IActionResult Index()
    {
        return View();
    }
}

// C# 12.0에서 더 간단하게 사용, _logger가 이 클래스 내에서만 사용되고 상속되거나 자식 클래스에서 사용되지 않는다고 가정
public class HomeController(ILogger<HomeController> logger) : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}

첫 번째 전통적인 예시에서는 생성자와 필드 초기화가 명시적으로 이루어집니다. 두 번째 예시에서는 C# 12.0의 기본 생성자를 사용하여 _logger 필드를 직접 선언한 곳에서 초기화할 수 있습니다. 세 번째 예시에서는 _loggerHomeController 내에서만 사용되고 있다고 가정하고 있습니다. 이 경우 _logger를 필드로서 전혀 사용하지 않고, 기본 생성자 매개변수에만 의존할 수 있으므로, 완전히 생략할 수 있습니다.

더 깊이 공부하고 싶다면
DevLec에서는 실무 중심의 C#, .NET, ASP.NET Core, Blazor, 데이터 액세스 강좌를 단계별로 제공합니다. 현재 수강 가능한 강좌 외에도 더 많은 과정이 준비되어 있습니다.
DevLec.com에서 자세한 커리큘럼을 확인해 보세요.
DevLec 공식 강의
C# Programming
C# 프로그래밍 입문
프로그래밍을 처음 시작하는 입문자를 위한 C# 기본기 완성 과정입니다.
ASP.NET Core 10.0
ASP.NET Core 10.0 시작하기 MVC Fundamentals Part 1 MVC Fundamentals Part 2
웹 애플리케이션의 구조와 MVC 패턴을 ASP.NET Core로 실습하며 익힐 수 있습니다.
Blazor Server
풀스택 웹개발자 과정 Part 1 풀스택 웹개발자 과정 Part 2 풀스택 웹개발자 과정 Part 3
실무에서 바로 활용 가능한 Blazor Server 기반 관리자·포털 프로젝트를 만들어 봅니다.
Data & APIs
Entity Framework Core 시작하기 ADO.NET Fundamentals Blazor Server Fundamentals Minimal APIs
데이터 액세스와 Web API를 함께 이해하면 실무 .NET 백엔드 개발에 큰 도움이 됩니다.
VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com