불변 타입

작가: Lewis Jackson
창조 날짜: 8 할 수있다 2021
업데이트 날짜: 1 칠월 2024
Anonim
[텔레비죤련속소설] 불변하라 제1-10부
동영상: [텔레비죤련속소설] 불변하라 제1-10부

콘텐츠

정의-불변 유형은 무엇을 의미합니까?

C #과 달리 불변 유형은 생성 후 데이터를 변경할 수없는 객체 유형입니다. 변경 불가능한 유형은 초기화 중에 할당 된 후에는 수정할 수 없으므로 객체의 속성 또는 상태를 읽기 전용으로 설정합니다.

불변 유형은 효율적인 메모리 관리 및 더 빠른 속도를 위해 설계되어 동기화 요구 사항이있는 객체에 적합합니다. 불변성은 프로그램 상태 가시성을 변경하고 상태를 변경하는 작업과 그렇지 않은 작업을 분리하여 코드 가독성을 향상시킵니다. 불변 유형은 변경 가능 유형보다 높은 보안을 제공합니다.

불변 유형은 한 번 할당 된 후 데이터가 유지되지만 향후 데이터를 변경할 필요가없는 경우에 사용됩니다. 불변 개체는 상태를 변경하지 않기 때문에 여러 스레드가 개체를 읽거나 쓸 수 있으므로 다중 스레드 및 다중 프로세스 시나리오에서 더 유용합니다. 이로 인해 경주 조건 및 동기화 문제가 발생할 수 있습니다.


Microsoft Azure 및 Microsoft 클라우드 소개 | 이 가이드를 통해 클라우드 컴퓨팅에 관한 모든 내용과 클라우드에서 비즈니스를 마이그레이션하고 운영하는 데 Microsoft Azure가 어떻게 도움이되는지 알아 봅니다.

Techopedia는 불변 유형을 설명합니다

"const"및 "readonly"키워드를 사용하여 불변 유형의 객체를 만들 수 있습니다. 읽기 전용은 생성자 내에서 필드를 수정할 수 있지만 const는 그렇지 않습니다. 숫자, 문자열 및 null은 const 필드로만 사용할 수 있으며, 이는 불변입니다. 읽기 전용은 한 번만 쓸 수 있기 때문에 변경할 수 없습니다. 따라서 const 필드와 같은 컴파일 타임 상수가 아닙니다. 진정한 불변 객체는 내부 상태를 전혀 변경하지 않으므로 본질적으로 스레드로부터 안전합니다.

System.String 클래스는 .NET 프레임 워크 클래스 라이브러리에서 제공되는 변경할 수없는 참조 유형입니다. 이 클래스는 문자열 조작 작업을 위해 내부적으로 새 문자열 객체를 만듭니다. 구문이 내용을 변경할 수있는 것처럼 보이더라도이 유형의 객체의 내용은 변경되지 않습니다. 또한 문자열은 해시 데이터 구조를 손상시킬 위험을 피하기 위해 해시 값을 계산하기위한 해시 테이블 키로 사용됩니다.

불변 유형의 주요 단점은 다른 객체 유형보다 더 많은 리소스가 필요하다는 것입니다.

이 정의는 C #으로 작성되었습니다.