정확한 코드는 내가 만들려고 해요 :왜 이것이 잘못된 변형입니까?
public interface IMapContainer<out T> where T : MapRoomBase
{
String GetName();
IEnumerable<T> GetRooms();
}
는이 오류를 받고 있어요 : 잘못된 분산이 : 형식 매개 변수 'T'는 'MapLibrary.IMapContainer.GetRooms()'에 가변되지 유효해야합니다. 'T'는 공변이다.
IEnumerable이 단순히 항목을 반환하고 아무 것도 추가 할 수 없으므로 유효하다는 인상하에있었습니다. 왜 이것이 안전하지 않고 + 유효하지 않은가?
죄송합니다.하지만 왜 'out T'입니까? 그게 '밖으로'필요합니까? –
T가 인터페이스의 매개 변수입니까? 무엇을 성취하려고합니까? 이상하게 보인 내 관점에서. –
@ Xtian, Andre, http://msdn.microsoft.com/en-us/library/dd997386.aspx. –