예제와 함께 C#의 레코드 유형 소개

Yejewa Hamkke C Ui Lekodeu Yuhyeong Sogae



레코드 유형은 주로 데이터를 저장하는 데 사용되는 클래스를 만들기 위한 간소화된 구문을 제공하는 C# 9에 도입된 새로운 기능입니다. 레코드 유형은 데이터를 보유할 속성 집합을 정의하는 클래스이지만 동등성 비교, 해싱 등과 같은 다른 기능도 포함합니다. 이 문서에서는 C#의 레코드 형식 개념을 소개하고 그 이점과 제한 사항을 살펴봅니다.

레코드 유형의 필요성

레코드 유형 사용의 주요 이점 중 하나는 데이터만 보유하는 클래스를 정의하기 위한 보다 간결한 구문을 제공한다는 것입니다. 이렇게 하면 코드를 더 쉽게 읽고 이해할 수 있으며 작성해야 하는 코드의 양이 줄어듭니다. 또한 레코드 유형은 기본적으로 변경할 수 없도록 설계되어 변경 가능한 상태로 인한 버그를 방지하는 데 도움이 됩니다.

레코드 유형을 사용하는 또 다른 이점은 동등성 비교, 해시 코드 및 문자열 표현을 기본적으로 지원한다는 점입니다.







C#의 레코드 유형 소개

C#의 레코드 유형은 작고 변경할 수 없는 데이터 구조에 대한 유형을 정의하는 간결한 방법을 제공합니다. 새 레코드를 만들 때 생성자의 속성 값을 전달한 다음 속성 구문을 사용하여 해당 값에 액세스할 수 있습니다. 구조가 잘 정의되어 있고 생성 후 수정할 필요가 없는 개체의 생성 및 사용을 단순화하는 데 사용됩니다.



공공 기록 < 레코드 이름 > ( < 매개변수 목록 > ) ;

public 키워드는 프로그램의 다른 클래스에서 레코드 유형에 액세스할 수 있도록 합니다. 레코드 키워드는 객체의 유형을 정의하고 그 뒤에 레코드 유형의 이름이 옵니다. ParameterList는 레코드 유형의 속성을 정의합니다. 다음은 이름, 부서 및 범주와 같은 회사 세부 정보를 저장한 예입니다. 아래 코드는 다음과 같습니다.



시스템 사용;

// Name, Department 및 Category의 세 가지 문자열 속성을 사용하여 CompanyDetails라는 레코드를 정의합니다.
레코드 회사 세부 정보 ( 문자열 이름, 문자열 부서, 문자열 카테고리 ) ;

수업 프로그램
{
정적 무효 메인 ( [ ] 인수 )
{
// CompanyDetails 레코드의 새 인스턴스를 만들고 전달합니다. ~에 속성 값
CompanyDetails 회사 = 새로운 CompanyDetails ( '리눅스 힌트' , '콘텐츠 작성' , '리눅스' ) ;

// 회사명, 부서, 카테고리 출력
콘솔.쓰기줄 ( $ '회사 이름: {company.Name}' ) ;
콘솔.쓰기줄 ( $ '부서: {회사.부서}' ) ;
콘솔.쓰기줄 ( $ '카테고리: {회사.카테고리}' ) ;
}
}

이 프로그램에서는 이름, 부서 및 범주의 세 가지 속성이 있는 CompanyDetails라는 레코드를 만듭니다. 각 속성은 문자열입니다. 그런 다음 company라는 CompanyDetails의 새 인스턴스를 만들고 각 속성에 대한 값을 전달합니다. 그런 다음 Console.WriteLine 문은 회사 개체의 Name, Department 및 Category 속성 값을 출력합니다. 코드 출력은 다음과 같습니다.

또한 C#에서 여러 레코드 유형을 정의할 수 있으며 각 레코드 유형은 고유한 속성 집합을 가질 수 있습니다. 예를 들어 직원에 대해 하나의 레코드 유형을 정의하고 회사 세부 정보에 대해 다른 레코드 유형을 정의할 수 있으며 여기에 해당 코드가 있습니다.

시스템 사용;

// 회사의 세부 정보를 저장하기 위한 레코드 정의
레코드 회사 세부 정보 ( 문자열 이름, 문자열 부서, 문자열 범주 ) ;

// 직원의 세부 정보를 저장할 레코드 정의
EmployeeDetails 기록 ( 문자열 이름, int 직원 ID, int 나이 ) ;

수업 프로그램
{
정적 무효 메인 ( [ ] 인수 )
{
// CompanyDetails 레코드의 인스턴스 생성 및 해당 값 초기화
var companyDetails = 새 CompanyDetails ( '리눅스 힌트' , '콘텐츠 작성' , '리눅스' ) ;

// 문자열 보간을 사용하여 CompanyDetails 레코드의 값 출력
콘솔.쓰기줄 ( $ '회사 이름: {companyDetails.Name}' ) ;
콘솔.쓰기줄 ( $ '부서: {companyDetails.Department}' ) ;
콘솔.쓰기줄 ( $ '카테고리: {companyDetails.Category}' ) ;

// EmployeeDetails 레코드의 인스턴스 생성 및 해당 값 초기화
var employeeDetails = 새로운 EmployeeDetails ( '표시' , 7834 , 25 ) ;

// 문자열 보간을 사용하여 EmployeeDetails 레코드의 값 출력
콘솔.쓰기줄 ( $ '직원 이름: {employeeDetails.Name}' ) ;
콘솔.쓰기줄 ( $ '직원 ID: {employeeDetails.EmployeeID}' ) ;
콘솔.쓰기줄 ( $ '직원 연령: {employeeDetails.Age}' ) ;
}
}

먼저 CompanyName, Department 및 Category의 세 가지 속성을 사용하여 레코드 유형 CompanyDetails를 정의합니다. 그런 다음 CompanyDetails 레코드의 새 인스턴스를 만들고 'Linux 힌트', '콘텐츠 작성' 및 'Linux' 값으로 해당 속성을 초기화합니다.

다음으로 Name, EmployeeID 및 Age의 세 가지 속성을 사용하여 다른 레코드 유형 EmployeeDetails를 정의합니다. 그런 다음 EmployeeDetails 레코드의 새 인스턴스를 만들고 'Mark', 7834 및 25 값으로 해당 속성을 초기화합니다. 마지막으로 Console.WriteLine 문을 사용하여 여기에서 CompanyDetails 및 EmployeeDetails 레코드의 속성 값을 출력합니다. 코드의 출력입니다.

결론

레코드 유형은 데이터를 저장하는 클래스를 만들기 위한 간소화된 구문을 제공하는 C# 9에 도입된 새로운 기능입니다. 간결한 구문, 자동 동등성 비교, 해싱, 인쇄, 불변 객체의 손쉬운 생성 등 여러 가지 이점을 제공합니다.

그러나 다른 클래스에서 상속할 수 없고 복잡한 논리에 대한 제한된 기능과 같은 몇 가지 제한 사항도 있습니다. 전반적으로 레코드 유형은 C# 개발자에게 유용한 도구이며 코드의 가독성과 유지 관리성을 향상시킬 수 있습니다.