Explore how primary constructors in C# 12 simplify your code by reducing boilerplate and enhancing readability across classes, structs, and records
C# 12 introduces primary constructors, a feature designed to streamline class and struct declarations by incorporating constructor parameters directly into the type’s declaration. This enhancement aligns with similar features found in languages like Scala, Kotlin, and OCaml, simplifying code and improving readability.
Primary constructors allow developers to declare constructor parameters right within the class or struct definition, reducing the boilerplate code typically associated with defining constructors and initializing fields. This results in more concise and readable code, which is especially useful in scenarios where classes or structs are used frequently.
To illustrate how primary constructors work in C# 12, let’s walk through an example. We’ll create a console application in Visual Studio 2022 to explore this feature. If you haven’t already installed Visual Studio 2022, you can download it from the official website.
Begin by launching Visual Studio 2022 and creating a new .NET Core console application project. In the “Create new project” window, select “Console App (.NET Core)” from the list of templates and click “Next.” Specify the name and location for your project, then select “.NET 8.0 (Long Term Support)” as the framework version in the “Additional information” window. Click “Create” to set up your project.
Once your project is created, you can start implementing primary constructors. By integrating constructor parameters directly into the class or struct declaration, you’ll see how this feature simplifies object initialization. This approach eliminates the need for additional constructor definitions and field initializations, making your code more efficient and easier to maintain.
In the following sections, we’ll delve into practical examples of using primary constructors in C# 12, demonstrating their benefits and how they can enhance your coding experience.