一般差異在C#4.0已經以這樣一種方式,它可以編寫沒有例外以下(這是C#3.0中會發生什麼)來實現:一般差異在C#4.0
List<int> intList = new List<int>();
List<object> objectList = intList;
[例非功能性:參見喬恩斯基特的答案]
我最近參加了一個會議,其中喬恩斯基特給通用差異的很好的概述,但我不知道我完全得到它 - 我理解的意義的in
和out
關鍵詞當談到對立和協變時,但我很好奇幕後發生的事情。
當代碼執行時,CLR看到了什麼?它是否將List<int>
隱含地轉換爲List<object>
還是僅僅構建,我們現在可以在派生類型之間轉換爲父類型?
出於興趣,爲什麼在之前的版本中沒有介紹它,以及主要優點 - 即真實世界的用法?在這個post用於通用方差
更多信息(但問題是非常過時的,尋找真正的,向上的最新信息)
啊。我將不得不下載並觀看上週六的例子,並親自體驗一下。當然,這個概念本身是有道理的 - 只是試圖讓我的頭腦在真實世界中使用這個概念的思想。非常感謝回覆。 – 2010-02-05 15:13:40
@丹尼爾:沒問題 - 對不起,我明確沒有在週六足夠好的解釋:)(當然有很多東西需要彌補......) – 2010-02-05 15:23:03
哦,這根本就不是那個喬恩 - 它全部移動了一點快,我還沒有接觸到C#4的任何新功能 - 我像瘋子一樣亂寫筆記。看起來我必須訂購第二版C#的深度:) – 2010-02-05 15:25:22