相关疑难解决方法(0)

协方差和逆变现实世界的例子

我在理解如何在现实世界中使用协方差和逆变时遇到了一些麻烦.

到目前为止,我见过的唯一例子是同样的旧数组示例.

object[] objectArray = new string[] { "string 1", "string 2" };
Run Code Online (Sandbox Code Playgroud)

很高兴看到一个允许我在开发过程中使用它的例子,如果我能看到它在其他地方使用的话.

c# covariance c#-4.0

149
推荐指数
8
解决办法
6万
查看次数

C#中的协方差有哪些?(或者,协方差:例如)

协方差(大致)是在使用它们的复杂类型中镜像 "简单"类型的继承的能力.
例如,我们总是可以将一个实例Cat视为一个实例Animal.如果ComplexType是协变ComplexType<Cat>ComplexType<Animal>,则可以将A 视为a .

我想知道:协方差的"类型"是什么,它们与C#有什么关系(它们是否受支持?)
代码示例会有所帮助.

例如,一种类型是返回类型协方差,由Java支持,但不支持C#.

我希望有功能编程印章的人也可以加入!

c# java functional-programming covariance

10
推荐指数
1
解决办法
1451
查看次数

协方差如何比多态更冷......而不是多余的?

.NET 4引入了协方差.我想这很有用.毕竟,MS经历了将其添加到C#语言的所有麻烦.但是,为什么协方差比良好的旧多态更有用呢?

我写这个例子来理解为什么我应该实现Covariance,但我仍然没有得到它.请赐教.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sample
{
    class Demo
    {
        public delegate void ContraAction<in T>(T a);

        public interface IContainer<out T>
        {
            T GetItem();
            void Do(ContraAction<T> action);
        }

        public class Container<T> : IContainer<T>
        {
            private T item;

            public Container(T item)
            {
                this.item = item;
            }

            public T GetItem()
            {
                return item;
            }

            public void Do(ContraAction<T> action)
            {
                action(item);
            }
        }

        public class Shape
        {
            public void Draw()
            {
                Console.WriteLine("Shape Drawn");
            }
        }

        public class …
Run Code Online (Sandbox Code Playgroud)

.net c# polymorphism covariance

9
推荐指数
2
解决办法
812
查看次数