C# attempt to mimic "with" F# keyword used to create immutable records.