> 백엔드 개발 > C++ > C# 4.0의 일반 공분산 및 비결정은 유형 할당 유연성을 어떻게 향상 시키는가?

C# 4.0의 일반 공분산 및 비결정은 유형 할당 유연성을 어떻게 향상 시키는가?

Patricia Arquette
풀어 주다: 2025-01-25 00:22:13
원래의
853명이 탐색했습니다.

C# 4.0 유전자 협력 및 인버터 C# 4.0은 유전자 협력 및 인버터에 대한 지원을 소개하여 일반 유형의 계보를보다 유연하게 만듭니다. C#의 초기 버전에서는 How Does C# 4.0's Generic Covariance and Contravariance Enhance Type Assignment Flexibility?

로 할당하려고 시도하면 컴파일러 오류가 발생하지만

는 문자열로 변환 할 수있는 객체를 수용 할 수 있습니다. 이 문제를 해결하기 위해 C# 4.0은 출력 변형 유형 (예 : )이 좌표를 허용하고 입력 변형 유형 (예 : )이 반전됩니다.

협력

List<string> 조정은 상속 계층 구조에서 다른 유형의 대안으로 한 유형을 사용할 수 있도록합니다. 예를 들어, 문자열이 객체이기 때문에 List<object>는 에 할당 할 수 있습니다. List<string>

로 선언되어 유형 T의 값 만 출력 할 수 있음을 나타 내기 때문입니다. 따라서 가 읽기 값에만 사용되는 한 로 사용하는 것이 안전합니다.

리버스 IEnumerable<T> Action<T> Disposter를 사용하면 상속 계층 구조의 다른 유형에 대한 대안으로 한 유형을 사용할 수 있습니다. 예를 들어 객체는 매개 변수로 문자열을 수신 할 수 있으므로

를 에 할당 할 수 있습니다. 이것은

로 선언되어 유형 T의 값 만 받아 들일 수 있음을 나타 내기 때문입니다. 따라서 가 값을 전송하는 데만 사용되는 한 로 사용하는 것이 안전합니다. 세부 사항을 구현하십시오

C# 4.0에서 는 CLR의 공동 작업 및 역 지원을 사용하여 분산이 달성됩니다. 이로 인해 C# 4.0은 보안 유형에 영향을 미치지 않으면 서 분산을 지원합니다.

일반 유형 선언이 출력 변형 또는 입력 변형 인 경우 컴파일러는 런타임 중 유형 매개 변수의 분산을 확인하기 위해 추가 IL 코드를 생성합니다. 이를 통해 조정 및 반전이 안전한 방식으로 사용되도록합니다. List<string>

위 내용은 C# 4.0의 일반 공분산 및 비결정은 유형 할당 유연성을 어떻게 향상 시키는가?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿