C# 12.0 기본 생성자(Primary Constructor) 소개
추천 자료: ASP.NET Core 인증 및 권한 부여
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
필드를 직접 선언한 곳에서 초기화할 수 있습니다. 세 번째 예시에서는 _logger
가 HomeController
내에서만 사용되고 있다고 가정하고 있습니다. 이 경우 _logger
를 필드로서 전혀 사용하지 않고, 기본 생성자 매개변수에만 의존할 수 있으므로, 완전히 생략할 수 있습니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!