(나 자신이 체크 아웃,하지만 나는 아직 VS2010을 (없는))가 C# 4.0 튜플 공변
내가이 기본 인터페이스가 말 : 실현
IBaseModelInterface
IBaseViewInterface
그리고 2 인터페이스를 그 :
ISubModelInterface : IBaseModelInterface
ISubViewInterface : IBaseViewInterface
나는 Tuple<IBaseModelInterface, IBaseViewInterface>
내가 설정하려는 정의하면 그 Tuple<ISubModelInterface, ISubViewInterface>
를 반환하는 공장의 결과에 따라.
C# 3에서는 하위 인터페이스가 기본 인터페이스를 인식하더라도이 작업을 수행 할 수 없습니다. 그리고 이제 공진을 허용하기 위해 in
키워드로 정의 되었기 때문에 C# 4에서 IEnumerable<IBaseModelInterface>
을 사용하는 경우이 작업을 수행 할 수 있습니다. 그럼 Tuple
내가 이것을 할 수 있습니까?
내가 이해하는 바에 따르면, 공분산은 인터페이스에만 허용되므로 ITuple<T1, T2>
인터페이스가 있어야한다는 의미입니까? 이것이 존재합니까?
"in"키워드는 * 공분산 *이 아닌 * 반동 *을 허용합니다. * a T가 IEnumerable *에서 나왔기 때문에 IEnumerable 은 * out *으로 표시됩니다. –