Primary Constructors in C# 12 - WORTH IT?
VloĆŸit
- Äas pĆidĂĄn 19. 06. 2024
- Today, we want to learn about one of the new C# 12 features coming with .NET 8 in November 2023. We will learn what Primary Constructors are, how to define them, and when to use them.
00:00 Introduction
00:16 Primary Constructors in Action
02:24 Secondary Constructors
02:57 ASP.NET Core WebAPI - Dependency Injection Example
03:49 Primary Constructors Generatees Mutable Fields
04:22 Immutable Fields (readonly)
05:25 Comparison with Record Types
06:38 When to Use Primary Constructors?
07:35 Conclusion
đ„ C#/.NET Bootcamp: The Fundamentals & more (Code FRIENDS10 for 10% OFF)*
claudiobernasconi.ch/dotnet-c...
đ .NET Developer Roadmap
claudiobernasconi.ch/learn-do...
đ CZcams Playlists:
The FREE Blazor Crash Course: âą The FREE Blazor Crash ...
Blazor: âą Blazor
â SUBSCRIBE FOR MORE VIDEOS
Subscribe: đ claudiobernasconi.ch/Subscribe
đ CONNECT & SUPPORT
Twitter: / chbernasconic
Blog: claudiobernasconi.ch
Newsletter: claudiobernasconi.ch/newsletter
* Affiliate Link: I earn a small commission at no additional cost - VÄda a technologie
What do you think of primary constructors in C# 12? Will you use them? đ€
I love this feature. This feature will make our services more leaner as all those dependencies won't be needed to be assigned to backing fields.
Yes, it makes it a lot leaner, I agree. Do you worry about newcomers having a hard time learning about primary constructors or do you believe it will be a standard feature in a few years?
@@ClaudioBernasconiStandard.
Que conteĂșdo excelente. Muito obrigado.
Muito obrigado.
I really like them. I'm sure there'll be some good use-cases. I'll see when it comes up
Definitely an interesting feature. We'll see how it shapes the C# codebases in the future. đ
This is an old feature that I thought was in C# several versions ago. Apparently they dropped it. They then used it for Records and now are adding it for a normal class.
As far as you having to understand it, I think that's true of most C#. :) But yes it is less obvious what is going on here, what is in scope, the fact that they are mutalbe, etc. The same can be said about pattern matching and switch expressions.
That said, you should 100% use file-scoped name spaces, unlike what you showed here. I think that one is a no-brainer.
I use file-scoped namespaces for my projects, but when I show a new language feature I prefer having everything else on default. Thanks for leaving your comment. đ
They are not fields, they are global scoped parameters. There's a big difference, since parameters cannot be declared as readonly.
Thanks for your comment. Can you elaborate on your statement? I have never heard of global scoped parameters. All I know is that the following looks pretty much like a private field. ibb.co/sjTDB5m
@@ClaudioBernasconi look at the tip when you hover the name. It says âparameterâ.
Yes, it looks like a field, but itâs a parameter. Youâve never heard of it because itâs new in C# 12 đ
But donât think of it as a field, although it looks like it đ