« Record » : différence entre les versions

De Banane Atomic
Aller à la navigationAller à la recherche
Ligne 18 : Ligne 18 :
     public required string LastName { get; init; }
     public required string LastName { get; init; }
};
};
// record struct value type with immutable properties
public readonly record struct Point(double X, double Y);
// equivalent to
public record struct Point
{
    public double X { get; init; }
    public double Y { get; init; }
}
// record struct value type with mutable properties
public record struct Point(double X, double Y);
// equivalent to
public record struct Point
{
    public double X { get; set; }
    public double Y { get; set; }
}
</kode>
</kode>

Version du 9 août 2024 à 13:29

Links

Definition

Built-in functionality for encapsulating immutable data.
C# 10 allows the record class syntax as a synonym to clarify a reference type, and record struct to define a value type.

Primary constructor

When you declare a primary constructor on a record, the compiler generates public properties for the primary constructor parameters.

Cs.svg
public record Person(string FirstName, string LastName);

// with the generated properties it is equivalent to
public record Person
{
    public required string FirstName { get; init; }
    public required string LastName { get; init; }
};

// record struct value type with immutable properties
public readonly record struct Point(double X, double Y);
// equivalent to
public record struct Point
{
    public double X { get; init; }
    public double Y { get; init; }
}

// record struct value type with mutable properties
public record struct Point(double X, double Y);
// equivalent to
public record struct Point
{
    public double X { get; set; }
    public double Y { get; set; }
}