record
record
타입이란 객체 내의 멤버가 변하지 않는 불변 참조 타입(Immutable Reference Type
) 생성을 목적으로 한다.
기존엔 class
키워드를 사용해서 클래스를 정의 했지만 record
라는 키워드를 통해 불변 타입을 정의하게 된다.
C# 9 이상 버전에서 사용할 수 있다.
코드 예제
- class로 작성한 Response
public class ScoreResponse { public long Id { get; init; } public string Name { get; init; } public decimal AverageScore { get; init; } }
- record로 작성한 response
public record ScoreResponse( long Id, string Name, decimal AverageScore);
- record로 작성한 response
record를 사용하는 이유
DTO를 생성할 때 record를 사용하는 두가지 주요 이유는 다음과 같다.
- 불변성
- 기본 생성자 (
Primary constructur
)
불변성은 DTO가 변경되지 않도록 도와주고 기본 생성자는 간결한 구문을 작성하는데에 도움이 된다.
record 명명 규칙
레코드 명명 규칙에 자주 사용되는 형식은 다음과 같다.
[TypeName]Dto
[TypeName]Model
[TypeName]Response
작성자는 주로 마지막의 [TypeName]Response
를 사용한다고 한다.
Positional record
record 형식으로 작성하면 다음과 같이 순서만 맞춘다면 Constructor
,Deconstructor
를 간단하게 사용할 수 있다.
// record
public record Person(string Name, int Age);
// Constructor
Person tom = new Person("Tom", 30);
// Deconstructor
var (name, age) = tom;
출처 Milan Jovanović / 예제로 배우는 C# 프로그래밍
반응형
'Backend > C# .NET' 카테고리의 다른 글
CQRS 패턴을 적용한 MediatR과 FluentValidation (0) | 2023.11.28 |
---|---|
Entity Framework Core 개념 / 장단점 / 코드 예제 / 사용 방법 / 데이터 가져오기, 수정, 삭제 / 샘플 코드 (0) | 2023.11.26 |
[C#] JWS 생성 (JSON Web Signature) / 검증 / RS256 (0) | 2023.08.08 |
[ASP.NET] Entity Framework Core (0) | 2021.12.13 |
[ASP.NET] 개요 / MVC 패턴 / 의존성 주입 패턴 (0) | 2021.12.07 |