record는 다음 처럼 사용할 수 있습니다.
가장 간단한 버젼
public record Person(string FirstName, string LastName);
class 또는 struct와 다르게 별도의 속성 정의가 없고 마치 생성자 처럼 인자를 받습니다.
그런데 내부적으로는 받은 인자를 통해 생성자 및 속성으로 적용됩니다.
public record Person
{
public string FirstName { get; }
public string LastName { get; }
public Person(string firstName, lastName) => (FirstName, LastName) = (firstName, lastName);
}
그런데 record Person(string FirstName, string LastName)
이렇게 사용했을 경우 어떻게 속성 Attribute를 부여할지 처음에는 난감할 수 있습니다. 다음처럼 할 수 있습니다.
예시
public record Person([attribute: Key(0)] string FirstName, [attribute: Key(1)] string LastName);
각각의 속성에 KeyAttribute
를 부여하였습니다.
참고로 class, struct 대신 record (class)
, record struct
를 사용을 고려할 때는 값 기반 같음
처리가 필요한지로 판단할 수 있습니다.
그리고 record (class)
를 쓸지, record struct
을 쓸지의 판탄은 class, struct 선택과 동일합니다.