public sealed record Result(T? Value, string? Error) { public bool IsSuccess => Error is null; public static Result Success(T value) => new(value, null); public static Result Failure(string error) => new(default, error); } var result = Result.Success(42); Console.WriteLine(result.IsSuccess ? result.Value : result.Error);