레코드

냐옹·2024년 4월 10일
0

.NET

목록 보기
23/31

레코드

레코드는 C# 9.0에 나온 새로운 타입이다.

  • 불변성을 기본으로 하는 개체를 쉽게 만들 수 있게 해준다.
  • 주로 데이터전송개체(DTO)나 값 개체(value Object)와 같이 데이터를 담는 용도로 사용된다.
  • 클래스와 구조체의 특성을 결합한 것으로 보여질 수 있다.
  • 불변성과 값 기반의 동등성 비교를 제공한다.

레코드의 주요 특징

  1. 불변성
    레코드의 인스턴스는 생성 시에 지정된 데이터로 초기화된 후 변경될 수 없다.

  2. 값 기반 동등성
    레코드 인스턴스는 내용에 기반하여 비교된다. 즉, 두 레코드가 동일한 값을 가지면 동등하다고 간주된다.

  3. 간결성
    레코드를 사용하면 간결하게 데이터모델을 정의할 수 있다. 속성, 생성자, Equals, GetHashCode등의 메서드가 자동으로 생성된다.

  4. 위치 기반 레코드
    생성자 인자를 통해서 속성을 정의할 수 있어서, 더욱 간결한 구문을 사용할 수 있다.

예시코드

public record Person(string FirstName, string LastName);

var person1 = new Person("John", "Doe");
var person2 = new Person("John", "Doe");

Console.WriteLine(person1 == person2);

//출력 True

위의 예제에서 Person 레코드는 FirstName과 LastName 두 속성을 가진다. 레코드는 생성자를 통해서 이 두 속성의 값을 초기화 한다. Person1과 Person2는 동일한 값을 가지므로, 값 기반 비교에서 True를 반환한다. 이는 레코드가 값의 동등성을 기반으로 비교되기 때문이다.

레코드는 불변성과 값 기반의 동등성을 통해서 코드를 더 안전하고 예측 가능하게 만든다. 또한 레코드를 사용하면 코드를 더 간결하게 작성할 수 있어서, 복잡성을 줄이고 가독성을 높일 수 있다.

얻을 수 있는 이점

데이터를 쉽게 전달하고 비교할 수 있다는 것이다. 불변 개체를 사용하면 프로그램의 동작을 이해하고 예측하기가 더 쉬워지고 버그 발생가능성을 줄일 수 있다.

0개의 댓글