C# with Expressions Evade Validation! @zoran-horvat
C# with Expressions Evade Validation!  @zoran-horvat
Uploaded April 2024 | Updated September 2026, 1 week ago
Become a sponsor ► patreon.com/zoranhorvat
Join Discord server with topics on C# ► codinghelmet.com/go/discord
Enroll course *Beginning Object-Oriented Programming with C#* ► codinghelmet.com/go/beginning-oop-with-csharp
Subscribe ► youtube.com/channel/UCxsWfh8LCcn55mFB6zGBT1g?sub_confirmation=1

C# with expressions provide elegant support for non-destructive mutation in records.
But they have a flaw.
This simple type promises to contain a non-empty, non-null string.
You may instantiate it with a truly non-empty string.
But how can you stop this attempt from executing?
An obvious way is to explicitly define the Value property, and then assign it using the primary constructor's parameter after applying validation.
This line will now throw.
Alas, there is a loophole in this design.
This validation only executes when run through the primary constructor.
If you used the with expression, then it would assign the new value using the init setter!
Well, bummer! There is no validation in the init setter.
A quick and dirty workaround is to remove the init setter and disable with expressions for the Value property.
Watch the long video and learn all about C# records validation.

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
👨 About Me 👨
Hi, I’m Zoran, I have more than 20 years of experience as a software developer, architect, team lead, and more. I have been programming in C# since its inception in the early 2000s. Since 2017 I have started publishing professional video courses at Pluralsight and Udemy and by this point, there are over 100 hours of the highest-quality videos you can watch on those platforms. On my YouTube channel, you can find shorter video forms focused on clarifying practical issues in coding, design, and architecture of .NET applications.❤️
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
⚡️COPYRIGHT NOTICE:
The Copyright Laws of the United States recognize a “fair use” of copyrighted content. Section 107 of the U.S. Copyright Act states: “Notwithstanding the provisions of sections 106 and 106A, the fair use of a copyrighted work, including such use by reproduction in copies or phono records or by any other means specified by that section, for purposes such as criticism, comment, news reporting, teaching (including multiple copies for classroom use), scholarship, or research, is not an infringement of copyright." This video and our youtube channel, in general, may contain certain copyrighted works that were not specifically authorized to be used by the copyright holder(s), but which we believe in good faith are protected by federal law and the Fair use doctrine for one or more of the reasons noted above.

#csharp #dotnet #functionalprogramming
C# with Expressions Evade Validation!Non-Nullable References Can Be Null!Getting Started With Azure Storage | TutorialProperty Patterns Will Change How You Write C# CodeCourse: Complete Introduction to Object-Oriented Programing with C#Must-Have Tools To Develop Azure Storage ApplicationsLambdas Almost Killed the Strategy PatternEnjoy Strongly Typed Code Again With Covariant Return TypesNew Answer to the Oldest Interview QuestionGuess the Pattern!Even Fast Queries Can Crash Your DatabaseUnveil the Mystery of the Liskov Substitution Principle
Zoran on C# |

C# with Expressions Evade Validation!

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER