> Markdown version of [/videos/693-modern-c-a-dive-into-the-community-s-most-loved-new-features?t=4](https://www.wearedevelopers.com/videos/693-modern-c-a-dive-into-the-community-s-most-loved-new-features?t=4). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Modern C#: A Dive into the Community's Most Loved new Features. Tired of object-oriented boilerplate? Discover how modern C# features like immutable records, advanced pattern matching, and explicit date types create cleaner, safer .NET applications. - **Speakers:** [Louëlla Creemers](https://www.wearedevelopers.com/@louella-creemers) - **Event:** World Congress 2023 - **Published:** September 27, 2023 - **Duration:** 27:04 - **URL:** https://www.wearedevelopers.com/videos/693-modern-c-a-dive-into-the-community-s-most-loved-new-features ## Summary This presentation explores heavily favored modern C# features designed to reduce object-oriented boilerplate and enforce safer, cleaner development practices. Drawing from community consensus, the discussion focuses on practical .NET enhancements that simplify declarative code, logical evaluations, and chronological data parsing. While refactoring legacy projects inherently depends on dedicated time and budget, developers are strongly encouraged to experiment with these newer capabilities in fresh applications to keep pace with the annual November .NET LTS release cycles. Highlighting structural data types, the session dives into C# `record` types (both classes and structs) to demonstrate a much stricter approach to immutability. Unlike a traditional class relying on an `init` setter—which can effortlessly be reverted to a mutable `set` property by an auto-fixer or an inexperienced team member—a record rigidly locks in state. Furthermore, records offer out-of-the-box value-based equality comparison, eliminating the need to write custom `Equals` or `ToString` override methods for basic object verification. Code readability receives a major architectural boost through the synergy of concise switch expressions and advanced pattern matching. By leveraging constant, relational, type, and recently implemented list patterns (incorporating semantic discards `_`), developers can execute sophisticated collection validation logic using significantly fewer lines of code. Finally, resolving long-standing frustrations with the monolithic `DateTime` object, the introduction of explicit `DateOnly` and `TimeOnly` types allows teams to target, manipulate, and mutate specific chronological segments without managing complex side effects or irrelevant zeroed-out properties. **Keywords:** modern .net features, c# record types, strict immutability, value-based equality, c# pattern matching, c# switch expressions, list pattern evaluation, relational patterns, dateonly and timeonly constructs, datetime object manipulation, c# init setters, legacy c# refactoring, c# boilerplate reduction, .net lts releases, object-oriented syntax ## Chapters 1. **Overview of modern C# feature selections** (00:04) — An introduction to the community's favorite recent language syntax additions inside modern C# development. 1. **Enforcing immutability with robust record types** (02:39) — How record classes and structs enforce strict data immutability while enabling seamless value-based equality checking. 1. **Evaluating complex conditions with C# pattern matching** (08:59) — Using constant, relational, type, and list patterns to replace verbose conditional logic statements cleanly. 1. **Writing concise C# logic using switch expressions** (14:59) — Converting traditional switch statement blocks into streamlined expressions to reduce source code length and overhead. 1. **Decoupling structures with DateOnly and TimeOnly types** (17:27) — Managing discrete component requirements by splitting the standard DateTime type into specific date and time types. 1. **Adopting new C# features and tracking updates** (21:11) — Best practices for safely experimenting with preview functionalities and keeping technical knowledge sharply updated. 1. **Clarifying record immutability and database type support** (25:04) — Analyzing the practical differences between immutable records and classes using initialization setters alongside database considerations. ## Related Moments - [Integrating new language features for readable async code](https://www.wearedevelopers.com/videos/387-using-java-17-latest-features-in-real-world-projects) (from "Using Java 17 latest features in real world projects") - [Improving syntax with modern switch expressions](https://www.wearedevelopers.com/videos/105-best-of-java-15-and-beyond-my-favorite-features) (from "Best of Java 15 and beyond—my favorite features") - [Implementing modern language feature advancements carefully alongside readability](https://www.wearedevelopers.com/videos/441-c-in-constrained-environments) (from "C++ in constrained environments") - [Working with records for immutability and value equality](https://www.wearedevelopers.com/videos/388-5-features-that-help-you-get-the-most-out-of-c-10) (from "5 features that help you get the most out of C# 10") - [Functional programming principles and practical application in C#](https://www.wearedevelopers.com/videos/569-down-the-oregon-trail-with-functional-c) (from "Down the Oregon Trail with Functional C#") - [Summarizing modern patterns for robust interactive components](https://www.wearedevelopers.com/videos/1589-building-interactive-async-ui-with-react-19-and-ariakit) (from "Building Interactive Async UI with React 19 and Ariakit") ## Related Articles - [Modern Java Records](https://www.wearedevelopers.com/magazine/41-modern-java-records) - [Using Java 17 latest features in real world projects](https://www.wearedevelopers.com/magazine/121-using-java-17-latest-features-in-real-world-projects) - [Devs vs. Marketers, COBOL and Copilot, Make Live Coding Easy and more - The Best of LIVE 2025 - Part 3](https://www.wearedevelopers.com/magazine/663-devs-vs-marketers-cobol-and-copilot-make-live-coding-easy-and-more-the-best-of-live-2025-part-3) - [Developers vs Scammers, Bad Design, AI is Pointless, AJAX is 20 and more - The Best of LIVE 2025 - Part 1](https://www.wearedevelopers.com/magazine/661-developers-vs-scammers-bad-design-ai-is-pointless-ajax-is-20-and-more-the-best-of-live-2025-part-1) ## Related Jobs - [Senior Software Engineer](https://www.wearedevelopers.com/jobs/ext/15942-senior-software-engineer) at **GitHub** - [Senior Software Engineer, Enterprise Products](https://www.wearedevelopers.com/jobs/ext/1841248-senior-software-engineer-enterprise-products) at **GitHub** - [Principal Software Engineer, Database Infrastructure](https://www.wearedevelopers.com/jobs/ext/1465908-principal-software-engineer-database-infrastructure) at **GitHub** - [Senior Software Engineer, Client Apps Platform](https://www.wearedevelopers.com/jobs/ext/1773893-senior-software-engineer-client-apps-platform) at **GitHub** - [Senior Software Engineer,Billing](https://www.wearedevelopers.com/jobs/ext/1991843-senior-software-engineer-billing) at **GitHub** - [Principal Software Engineer, Identity](https://www.wearedevelopers.com/jobs/ext/1469181-principal-software-engineer-identity) at **GitHub**