2012-09-06 31 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:

协方差允许具有多个派生返回类型比由接口的一般类型参数中定义的方法。

逆变函数允许方法具有比由接口的通用参数指定的参数类型更少的参数类型。

相关问题