«covariance» 태그된 질문

공분산, 반공 변성 및 불변성은 일부 변환 (예 : 제네릭 내 사용)을받을 때 기존 유형 상속 계층이 어떻게 변경되는지를 설명합니다. 변환이 원래 계층 구조의 순서를 유지하는 경우 "공변"입니다. 반대로하면 "반 변성"입니다. 깨지면 "불변"입니다.

5
제네릭의 <out T> vs <T>
차이점은 무엇이며 &lt;out T&gt;그리고 &lt;T&gt;? 예를 들면 다음과 같습니다. public interface IExample&lt;out T&gt; { ... } vs. public interface IExample&lt;T&gt; { ... }
189 c#  generics  covariance 


9
공분산 및 반 공예 실제 사례
현실 세계에서 공분산과 공분산을 사용하는 방법을 이해하는 데 약간의 어려움이 있습니다. 지금까지 내가 본 유일한 예는 동일한 이전 배열 예입니다. object[] objectArray = new string[] { "string 1", "string 2" }; 다른 곳에서 사용되는 것을 볼 수 있다면 개발 중에 사용할 수있는 예제를 보는 것이 좋을 것입니다.
162 c#  c#-4.0  covariance 

8
왜 배열이 공변이지만 제네릭은 변하지 않습니까?
Joshua Bloch의 효과적인 Java에서 배열은 두 가지 중요한 점에서 일반 유형과 다릅니다. 첫 번째 배열은 공변량입니다. 제네릭은 변하지 않습니다. 공변량은 단순히 X가 Y의 하위 유형 인 경우 X []도 Y []의 하위 유형이됨을 의미합니다. 배열이 공변량 임 string이 Object의 하위 유형이므로 String[] is subtype of Object[] 불변은 단순히 X가 Y의 …

4
공분산과 공분산이 값 유형을 지원하지 않는 이유
IEnumerable&lt;T&gt;인 공동 변종 하지만 값 유형, 단지에만 참조 형식을 지원하지 않습니다. 아래 간단한 코드가 성공적으로 컴파일되었습니다. IEnumerable&lt;string&gt; strList = new List&lt;string&gt;(); IEnumerable&lt;object&gt; objList = strList; 그러나에서 string로 변경 int하면 컴파일 오류가 발생합니다. IEnumerable&lt;int&gt; intList = new List&lt;int&gt;(); IEnumerable&lt;object&gt; objList = intList; 그 이유는 MSDN에 설명되어 있습니다 . 차이는 참조 유형에만 …

5
공분산과 역 분산의 차이
На этот вопрос есть ответы на 스택 오버플로 на русском : Ковариантность и контрвариантность обобщений 공분산과 공분산의 차이를 이해하는 데 문제가 있습니다.

4
예를 들어 (공동, 대조 및 in) 분산이 어떻게 작동합니까?
이 질문 에 이어 누군가 Scala에서 다음을 설명 할 수 있습니다. class Slot[+T] (var some: T) { // DOES NOT COMPILE // "COVARIANT parameter in CONTRAVARIANT position" } 형식 선언 +T과 T형식 선언 의 차이점을 이해합니다 (을 사용하면 컴파일됩니다 T). 하지만 어떻게 하나 실제로 일을 만들기에 의지하지 않고 형식 매개 …

7
x에서 y로 공변량 배열을 변환하면 런타임 예외가 발생할 수 있습니다
나는이 private readonly목록 LinkLabel들 ( IList&lt;LinkLabel&gt;). 나중에이 LinkLabel목록 에 s를 추가하고 해당 레이블을 FlowLayoutPanel다음과 같이 추가 합니다. foreach(var s in strings) { _list.Add(new LinkLabel{Text=s}); } flPanel.Controls.AddRange(_list.ToArray()); Resharper는 다음과 같은 경고를 표시 Co-variant array conversion from LinkLabel[] to Control[] can cause run-time exception on write operation합니다.. 알아낼 수 있도록 도와주세요. 이것은 …

2
C #에서 제네릭을 사용한 공분산 반공 분산 이해 문제
다음 C # 코드가 컴파일되지 않는 이유를 이해할 수 없습니다. 보시다시피 IEnumerable&lt;T&gt;매개 변수가있는 (그리고 인터페이스로 T제한됨) 정적 제네릭 메서드 Something이 있으며이 IA매개 변수는 암시 적으로 IEnumerable&lt;IA&gt;. 설명은 무엇입니까? (나는 그것이 작동하지 않는 이유를 이해하기 위해 해결 방법을 검색하지 않습니다). public interface IA { } public interface IB : IA { …

3
공분산, 불변 및 반공 분산이 평범한 영어로 설명됩니까?
오늘 저는 Java의 Covariance, Contravariance (및 Invariance)에 대한 기사를 읽었습니다. 영어 및 독일어 Wikipedia 기사와 IBM의 다른 블로그 게시물 및 기사를 읽었습니다. 그러나 나는 이것들이 정확히 무엇에 대해 여전히 약간 혼란 스럽습니까? 어떤 사람들은 유형과 하위 유형 간의 관계에 관한 것이라고 말하고 어떤 사람들은 유형 변환에 관한 것이라고 말하고 어떤 …

2
Generic Covariance & Contra-variance는 C # 4.0에서 어떻게 구현됩니까?
PDC 2008에는 참석하지 않았지만 C # 4.0이 Generic covariance와 contra-variance를 지원하기 위해 발표되었다는 소식을 들었습니다. 즉,에 List&lt;string&gt;할당 할 수 있습니다 List&lt;object&gt;. 어떻게 그럴 수 있습니까? Jon Skeet의 저서 C # in Depth 에서는 C # 제네릭이 공분산 및 반 분산을 지원하지 않는 이유를 설명합니다. 주로 보안 코드를 작성하기위한 것입니다. 이제 …

3
Java에서 오버로딩 및 오버라이드의 경우 공분산 및 반공 분산을 보여주는 함수의 예를 제공합니까? [닫은]
닫힘 . 이 질문은 더 집중되어야 합니다. 현재 답변을 받고 있지 않습니다. 이 질문을 개선하고 싶으십니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중하도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 이 질문 개선 Java의 공분산 및 반공 분산에 대한 좋은 예를 보여주세요.


3
Scala의 불변 집합이 유형에서 공변이 아닌 이유는 무엇입니까?
편집 : 원래 답변을 기반 으로이 질문을 다시 작성 scala.collection.immutable.Set클래스의 형식 매개 변수의 공변되지 않습니다. 왜 이런거야? import scala.collection.immutable._ def foo(s: Set[CharSequence]): Unit = { println(s) } def bar(): Unit = { val s: Set[String] = Set("Hello", "World"); foo(s); //DOES NOT COMPILE, regardless of whether type is declared //explicitly in …

2
C #의 공변 및 반 변성 인터페이스 이해
C #에서 읽고있는 교과서에서 이러한 문제를 발견했지만 컨텍스트 부족으로 인해 이해하는 데 어려움이 있습니다. 그것들이 무엇인지, 그리고 그들이 밖에서 무엇을 위해 유용한 지에 대한 간결한 설명이 있습니까? 명확히하기 위해 편집 : 공변 인터페이스 : interface IBibble&lt;out T&gt; . . 반 변성 인터페이스 : interface IBibble&lt;in T&gt; . .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.