رکورد موقعیتی (Positional Record)
Positional Record رکوردی است که پارامترها را مستقیماً در تعریف نوع، داخل پرانتز، مینویسید و کامپایلر بقیهی چیزها را خودش تولید میکند
// Normal Class
public class FileValidationResult
{
public bool IsValid { get; }
public string? Error { get; }
public ImageType Type { get; }
private FileValidationResult(bool isValid, string? error, ImageType type)
{
IsValid = isValid;
Error = error;
Type = type;
}
public static FileValidationResult Ok(ImageType type) => new(true, null, type);
public static FileValidationResult Fail(string error) => new(false, error, ImageType.Unknown);
}
// Positional Record
public readonly record struct FileValidationResult(
bool IsValid, string? Error = null, ImageType Type = ImageType.Unknown)
{
public static FileValidationResult Ok(ImageType type) => new(true, null, type);
public static FileValidationResult Fail(string error) => new(false, error);
}