[C#] record 속성에 Attribute 부여 방법

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 선택과 동일합니다.

좋아요 1
좋아요 1