标签:covariance

  • C#泛型类型推断与协方差-错误或限制 - c#

    时间:2020-8-23

    当具有依赖参数的泛型方法推断类型时,在某些情况下会产生意外结果。如果我明确指定类型,则一切正常,而无需任何进一步更改。 IEnumerable<List<string>> someStringGroups = null; // just for demonstration IEqualityComparer<IEnumerabl […]

  • 当您知道要分配给该字段的名称时,可以将数组分配给未知类型的数组吗? - c#

    时间:2020-8-19

    我需要将一个数组分配给一个字段。我不知道字段类型,但是我确实引用了实例和字段名称。我可以假设可以将数组转换为字段类型。能做到吗? 巴斯 编辑: 希望这段代码可以阐明我想做什么,这会导致assign中的异常: class MyClass { static void Main() { MyClass t = new MyClass(); A a = new A( […]

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

    时间:2020-8-6

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

  • C#协方差混淆 - c#

    时间:2020-7-31

    以下是有关C#中协方差的代码段。我对如何应用协方差有一定的了解,但是我很难掌握一些详细的技术知识。 using System; namespace CovarianceExample { interface IExtract<out T> { T Extract(); } class SampleClass<T> : IExtract […]

  • 泛型和类继承的混淆 - c#

    时间:2020-7-29

    我有以下代码块作为我遇到的问题的简化示例。但是我收到一个错误消息,声称我无法将一种类型转换为另一种类型。我使用LINQPad进行了测试。 void Main() { LivingThing<Appendage> mysteryAnimal = new Cat(); } public class Appendage { } public class […]