確切的代碼我試圖建立:這是一個無效的差異?
public interface IMapContainer<out T> where T : MapRoomBase
{
String GetName();
IEnumerable<T> GetRooms();
}
我得到這個錯誤: 無效方差:類型參數「T」必須是「MapLibrary.IMapContainer.GetRooms()」目不暇接有效。 'T'是協變的。
我的印象是,這將是有效的,因爲IEnumerable只是返回項目,並且都不能添加。爲什麼這不安全+有效?
對不起,但爲什麼'出T'?你需要那個'出'嗎? – 2012-08-13 19:37:39
爲什麼T從界面輸出參數?你想達到什麼目的?從我的角度來看,這看起來奇怪/錯誤。 – 2012-08-13 19:39:49
@ Xtian,Andre,http://msdn.microsoft.com/en-us/library/dd997386.aspx。 – 2012-08-13 19:44:31