Designing for Nullability in C#

With Nullable Reference Types (NRTs) enabled by default in .NET 6 templates, designing APIs that clearly communicate nullability is no longer optional—it’s expected.

Enabling NRTs

<PropertyGroup>
    <Nullable>enable</Nullable>
</PropertyGroup>

Guard Clauses

Use the new .NET 6 helper to throw if null.

public void SetName(string name)
{
    ArgumentNullException.ThrowIfNull(name);
    _name = name;
}

Key Takeaways

  • Use `string?` to explicitly mark nullable strings.
  • Use `!` (null-forgiving operator) sparingly—only when you truly know better than the compiler.
  • Enable `Nullable` to enforce discipline.

Discover more from C4: Container, Code, Cloud & Context

Subscribe to get the latest posts sent to your email.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.