.NET


C#'s Latest Language Feautes | Powerful and Elegant

Latest features every developer needs to know about.

  • Records – immutable data objects with value equality
  • With‑expressions – clone objects with modifications
  • Pattern matching upgrades – relational, logical, and property patterns
  • Init‑only setters – immutable properties with flexible initialization
  • File‑scoped namespaces – cleaner, less-indented files
  • Global using directives – remove repeated using statements
  • Top‑level statements – minimal Program.cs and minimal APIs
  • Required members – enforce object initialization
  • Primary constructors – constructor parameters directly on classes
  • Collection expressions – new [] syntax for lists and merging
  • Raw string literals – perfect for JSON, SQL, and regex without escaping
  • Nameof improvements – safer refactoring and cleaner code


Examples

  • Records – immutable data objects with value equality
    
                public record User(string Name, int Age);
                        
  • With-expressions – clone objects with modifications
    
                var user2 = user with { Age = 40 };
                        
  • Pattern Matching – relational, logical, and property patterns
    
                if (person is { Age: > 18 and < 30 })
                {
                    Console.WriteLine("Young adult");
                }
                        
  • Init-only setters – immutable properties with flexible initialization
    
                public class Product
                {
                    public string Name { get; init; }
                    public decimal Price { get; init; }
                }
    
                var p = new Product { Name = "Book", Price = 9.99m };
                        
  • File-scoped namespaces – cleaner files
    
                namespace MyApp;
    
                public class Service { }
                        
  • Global using directives – remove repeated using statements
    
                // GlobalUsings.cs
                global using System;
                global using System.Linq;
                        
  • Top-level statements – minimal Program.cs
    
                Console.WriteLine("Hello World");
                        


An unhandled error has occurred. Reload 🗙

Connection Interrupted

Your current session is still open. We'll keep trying to restore it.

Rejoining the server...

Rejoin failed. Trying again in s.

Failed to rejoin. Retry now or reload the page.

The session has been paused by the server.

Failed to resume the session. Retry now or reload the page.