Category: C#
Alternate Lookup for Dictionary and HashSet in .NET 9
September 10, 2024 3 minutes read In .NET 9, a new method called GetAlternateLookup<TKey, TValue, TAlternate>() has been introduced for hash tables classes, including Dictionary<TKey, TValue>, HashSet<T>, ConcurrentDictionary<TKey, TValue>, FrozenDictionary<TKey,...
Fastest C# Enum to String
July 15, 2024 3 minutes read This article benchmarks various ways to obtain a string from an enumeration value in C# .NET, along with other common enumeration APIs. At NDepend,...
C# DateTime Format In A Nutshell
July 11, 2024 6 minutes read This article is about C# DateTime Format, which means both: Obtain a date-formatted string. Use a pattern like "yyyy-MM-dd HH:mm:ss" to extract and format the...
Readonly, Immutable, and Frozen Collections in .NET
July 1, 2024 4 minutes read In modern software development, immutability is a powerful concept. The .NET Base Class Library (BCL) offers readonly, immutable, and frozen collections. This terminology might...
When to create a new .csproj?
June 24, 2024 5 minutes read Recently, a question has been raised on Reddit/r/dotnet: When should you create a new .csproj? This is a crucial consideration for every .NET team....
C# 13 params collections
June 19, 2024 3 minutes read Here is a quick post to explain how the upcoming C# 13 params collections feature will free your code from many allocations. C# params...
C# Array and List Fastest Loop in 2024
June 12, 2024 5 minutes read Discussions about the fastest way to loop through an array (T[]) and a List<T> in C# have been ongoing. Results can vary with each...
Top 10 C# Recent Improvements
June 3, 2024 7 minutes read Over the years, in collaboration with the community, the C# team has introduced numerous impressive new syntax features. Some of these simplify coding and...
.slnx The New .NET Solution XML File Format
May 28, 2024 3 minutes read Since Visual Studio 2022 17.10 preview, we can see a new .NET solution file format with file extension .slnx. For example for this simple...
The .NET Generic Math Library
May 15, 2024 7 minutes read In November 2022 with the release of .NET 7, new math-related generic interfaces have been added to the .NET Base Class Library (BCL). This...
C# static abstract members
May 14, 2024 5 minutes read C# 11 proposed interface members declared as static abstract. This is useful to handle both: Polymorphism at the type level, for example when abstracting...
The .NET 7.0 IParsable<TSelf> interface
May 7, 2024 3 minutes read As I explained in the post C# 11 static abstract members, C# 11 let’s write static abstract members in an interface. This feature was...
C# Discriminated Union: What’s Driving the C# Community’s Inquiries?
May 6, 2024 6 minutes read In recent years, there has been a notable surge in inquiries from the C# community regarding language-level support for C# Discriminated Unions. What individuals...
Covariance and Contravariance in C# Explained
May 2, 2024 6 minutes read Introduction Covariance and contravariance allow more flexibility when dealing with C# class hierarchy. This article explains and demonstrates the concepts of Covariance and Contravariance...
Vertical Slice Architecture in ASP.NET Core
April 26, 2024 6 minutes read The organization of code in a solution is a subject of frequent debates. Currently, two prominent approaches have garnered attention: Clean Architecture versus Vertical...
C# 12 New Features
April 26, 2024 5 minutes read C# 12 along with .NET 8 has been officially released in November 2023. Let’s explore C# 12 New Features in this post. Primary Constructors...
Improve C# code performance with Span<T>
April 24, 2024 9 minutes read Welcome to our exploration of System.Span<T> and System.ReadOnlySpan<T>, two powerful structures introduced in C# 7.2 back in 2017. As a type-safe way to access...
.NET 8 Top 10 New Features
April 24, 2024 7 minutes read .NET 8 has been officially released in November 2023. You can download it here. Designated as an LTS (Long Term Support) version, it guarantees...
Deconstruction in C#
April 24, 2024 2 minutes read C# 7.0 introduced the deconstruction syntax. It allows developers to extract in a single expression, properties of an object or elements of a tuple...
WPF vs WinForms – Making the Right Decision in 2024
April 24, 2024 7 minutes read If you’re a developer faced with the decision of selecting between Windows Presentation Foundation (WPF) and Windows Forms (WinForms) commonly referred to as WPF...
C# Index and Range Operators Explained
April 24, 2024 3 minutes read In this post, we comprehensively demystify the C# index ^ and range .. operators. The index operator ^ Let’s start with the index ^...
Will Visual Studio Be Migrated to .NET Core and Become Multi-Platform?
April 22, 2024 7 minutes read I came across comments on a recent Reddit post and thought it would be intriguing to analyze the DLLs of Visual Studio 2022 (version...
C# String Interpolation Explained
April 17, 2024 3 minutes read C# String Interpolation is a powerful feature that simplifies the syntax for embedding variables and expressions within strings to construct strings dynamically. String interpolation...
Clean Architecture in ASP.NET Core
April 16, 2024 9 minutes read The Clean Architecture pattern has gained significant popularity for the design and development of software applications. It emphasizes key principles to better maintain, scale,...
C# Async Await Explained
April 16, 2024 9 minutes read If your application involves I/O-bound operations like network requests, database access, or file system reads and writes, asynchronous programming is essential. Similarly, for CPU-bound...
Visual Studio vs Visual Studio Code: The Ultimate Guide (2024)
April 15, 2024 8 minutes read In the world of .NET development, two popular tools stand out: Visual Studio and Visual Studio Code. Visual Studio is generally recognized as a...
Class vs Struct in C#: Making Informed Choices
April 15, 2024 9 minutes read In C# programming, choosing the right data type between classes and structs is a crucial decision that impacts application performance and design. This article presents...
C# Optional Parameters Explained
April 12, 2024 3 minutes read C# optional parameters allow methods, constructors, and indexers to be invoked without providing arguments for those optional parameters. This feature is particularly useful when...
C# Pattern Matching Explained
April 11, 2024 7 minutes read Since the C# version 7, C# has support for pattern matching. C# pattern matching is here to simplify complex if-else statements into more...
Architecture of a .NET Application: 8 Case Studies
January 30, 2024 9 minutes read This recent question on Reddit’s Number of projects per solution led to interesting debates. Of course, the answer depends largely on the overall size...