【问题标题】:Can someone explain this generic syntax?有人可以解释这种通用语法吗?
【发布时间】:2012-09-06 10:33:01
【问题描述】:

我在这方面做了一些谷歌,但没有找到任何解释语法的东西..

所以我将Action<T> 用于生产者消费者,其中Action<T> 是要执行的消费者操作。我右击Action<T> - 'go to definition' 来查看它的定义,这就是我看到的

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

嗯...我使用泛型已经有一段时间了,从来没有使用过也没有见过&lt;in T&gt;的语法

任何人都得到了一个很好的总结来解释语法及其产生的内容?

谢谢。 D

【问题讨论】:

标签: c# generics delegates action


【解决方案1】:

C# 4.0 中引入了泛型类型的 inout 方差修饰符,以允许泛型类型的 co 和 contra 方差。

对于泛型类型参数,in 关键字指定类型参数是逆变

对于泛型类型参数,out 关键字指定类型参数是协变


来自 MSDN 上的Variance in Generic Interfaces (C# and Visual Basic)

协方差允许方法具有比接口的泛型类型参数定义的返回类型更多的派生返回类型。

逆变允许方法具有的参数类型比接口的泛型参数指定的参数类型少。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2013-11-30
    相关资源
    最近更新 更多