A with expression copies a record while changing selected values.

With Expressions

WithExpressions.cs
using System;

record Settings(string Theme, int FontSize)
{
    public override string ToString()
    {
        return Theme + ":" + FontSize;
    }
}

class Program
{
    static void Main()
    {
        int fontSize = ;
        Settings original = new Settings("light", 14);
        Settings updated = original with { FontSize = fontSize };

        Console.WriteLine($"fontSize={fontSize}");
        Console.WriteLine($"original={original.Theme}:{original.FontSize}");
        Console.WriteLine($"updated={updated.Theme}:{updated.FontSize}");
    }
}
using System;

record Settings(string Theme, int FontSize)
{
    public override string ToString()
    {
        return Theme + ":" + FontSize;
    }
}

class Program
{
    static void Main()
    {
        int fontSize = ;
        Settings original = new Settings("light", 14);
        Settings updated = original with { FontSize = fontSize };

        Console.WriteLine($"fontSize={fontSize}");
        Console.WriteLine($"original={original.Theme}:{original.FontSize}");
        Console.WriteLine($"updated={updated.Theme}:{updated.FontSize}");
    }
}
using System;

record Settings(string Theme, int FontSize)
{
    public override string ToString()
    {
        return Theme + ":" + FontSize;
    }
}

class Program
{
    static void Main()
    {
        int fontSize = ;
        Settings original = new Settings("light", 14);
        Settings updated = original with { FontSize = fontSize };

        Console.WriteLine($"fontSize={fontSize}");
        Console.WriteLine($"original={original.Theme}:{original.FontSize}");
        Console.WriteLine($"updated={updated.Theme}:{updated.FontSize}");
    }
}
with expression A `with` expression creates a modified copy of a record.