c# - IData<out T> 和 IData<T> 有什么区别

标签 c#

<分区>

IData< out T>IData< T> 有什么区别?

最佳答案

考虑一下,

class Fruit {}

class Banana : Fruit {}

interface ICovariantData<out T> {}

interface IData<T> {}

和函数,

void Peel(IData<Fruit> fruitData) { }

void Peel(ICovariantData<Fruit> fruitData) { }

接受ICovariantData<Fruit>的函数将能够接受 ICovariantData<Fruit>ICovariantData<Bananna>因为它是协变接口(interface)并且 BananaFruit 的一种,

接受IData<Fruit>的函数将只能接受 IData<Fruit> .

关于c# - IData<out T> 和 IData<T> 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20660572/

相关文章:

c# - 在 Visual Studio 扩展中打开标准对话框

c# - 如何使用 CodeDOM 定位特定语言版本?

c# - 如何将特殊字符 (0x80..0x9F) 写入 Windows 控制台?

C# 字符串解析为变量类型

c# - 在 Visual Studio 2012 C# 中连接到 SQL Server 数据库

c# - 从字符串中删除空格(特殊字符开头和数字结尾除外)到 C# 中

c# - 匿名类型上的 ToString 如何工作?

c# - SQL 值超出范围

c# - 提交具体模型对象

c# - 如何删除罗斯林?