我对此做了一些谷歌,但没有找到任何解释语法的东西。
因此,我正在使用Action<T>
生产者消费者Action<T>
执行消费者操作的位置。我右键单击Action<T>
-“转到定义”以查看其定义,这就是我看到的
public delegate void Action<in T>(T obj);
嗯...我使用泛型已经有一段时间了,从来没有使用过也没有见过<in T>
任何人都有一个很好的总结来解释语法及其产生的内容?
谢谢。D
C# 4.0 中引入了泛型类型的in
andout
变化修饰符,以允许泛型类型的 co 和 contra 变化。
对于泛型类型参数,in关键字指定类型参数是逆变的。
对于泛型类型参数,out关键字指定类型参数是covariant。
并来自MSDN 上的通用接口(C# 和 Visual Basic)的差异:
协变允许方法具有比接口的泛型类型参数定义的更派生的返回类型。
逆变允许方法具有比接口的泛型参数指定的参数类型更少派生的参数类型。