标签:contravariance

  • 在Contravariance中,颠倒引用的分配兼容性意味着什么? - c#

    时间:2020-8-11

    在Contravariance中,颠倒引用的分配兼容性意味着什么? 协方差和协方差(C#) // Assignment compatibility. string str = "test"; // An object of a more derived type is assigned to an object of a less der […]

  • 代表方差规则的怪异示例 - c#

    时间:2020-8-6

    在埃里克·利珀特(Eric Lippert)的博客文章中,简短地介绍了协方差和逆方差或方差,以及在诸如C#的书本中,都指出: 如果您要定义通用的委托人类型,则最好的做法是: 将仅在返回值上使用的类型参数标记为协变(out)。 将仅在参数上使用的所有类型参数标记为反变量(输入)。 这样一来,通过尊重 类型之间的继承关系。 因此,我正在对此进行试验,并且找到了一 […]

  • 应该remove(Object)被remove(?super E) - java

    时间:2020-8-6

    在this answer中,我试图解释为什么add是add(E)时Collection方法remove具有签名remove(Object)的原因。我想到了正确的签名应该是 public boolean remove(? super E element) 并且由于这在Java中是无效的语法,因此他们必须坚持使用Object,对于任何super E来说,恰好是E […]