2012-09-06 64 views
2

我已經做了這一點谷歌並沒有發現任何解釋語法..有人可以解釋這個通用語法嗎?

所以我使用Action<T>的生產者消費者那裏Action<T>是消費者要執行的操作。我右鍵點擊Action<T> - 「去定義」,看看它的定義,這就是我被

public delegate void Action<in T>(T obj); 

嗯...我一直在使用仿製藥,現在相當長的一段,並沒有使用過,也沒有看到的語法<in T>

任何人都有一個很好的總結來解釋語法和它產生的?

謝謝。 D

+3

谷歌也用於反轉http://msdn.microsoft.com/en-us/library/dd469484.aspx –

回答

1

inout通用類型的方差修飾符已在C#4.0中引入,以允許與泛型類型產生共同和反向差異。

對於一般類型參數,則在關鍵字指定類型參數是逆變

對於通用類型參數,out關鍵字指定類型參數爲covariant


而從Variance in Generic Interfaces (C# and Visual Basic)上MSDN:

協方差允許具有多個派生返回類型比由接口的一般類型參數中定義的方法。

逆變函數允許方法具有比由接口的通用參數指定的參數類型更少的參數類型。

相關問題