"Static factory methods for helping construct types with required members"

public class VehicleMetadata {
	public required DateOnly ManufactureDate { get; init; }
	public required bool IsTaxed { get; init; }
	public required VehicleClass Class { get; init; }
	public required string Model { get; init; }

	public static VehicleMetadata FromGovernmentCode(string governmentCode, string model) {
		var split = governmentCode.Split('-');

		return new VehicleMetadata { // Compiler won't let us forget to set 'Model' here. If we add more members in future, we can't compile without updating this method too.
			ManufactureDate = new DateOnly(Int32.Parse(split[0]), Int32.Parse(split[1]), Int32.Parse(split[2])),
			IsTaxed = Boolean.Parse(split[3]),
			Class = Enum.Parse<VehicleClass>(split[4]),
			Model = model
		};
	}
}

static void Test() {
	var m = VehicleMetadata.FromGovernmentCode("1990-01-19-True-Car", "BenMobile");
	Console.WriteLine("Vehicle model length is: " + m.Model.Length); // Works! :)
}


Code snippet taken from "Complete C# Quick Reference - C# 11".