C# 4.0 유전자 협력 및 인버터
C# 4.0은 유전자 협력 및 인버터에 대한 지원을 소개하여 일반 유형의 계보를보다 유연하게 만듭니다. C#의 초기 버전에서는
를
로 할당하려고 시도하면 컴파일러 오류가 발생하지만
는 문자열로 변환 할 수있는 객체를 수용 할 수 있습니다.
이 문제를 해결하기 위해 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!