MSDN上的解释

协变保留兼容性,逆变与之相反

in的使用

个人理解:就是表明泛型就是可以逆变的(逆变就是大变小)

// Contravariant interface.
interface IContravariant<in A> { } // Extending contravariant interface.
interface IExtContravariant<in A> : IContravariant<A> { } // Implementing contravariant interface.
class Sample<A> : IContravariant<A> { } class Program
{
static void Test()
{
IContravariant<Object> iobj = new Sample<Object>();
IContravariant<String> istr = new Sample<String>(); // You can assign iobj to istr because
// the IContravariant interface is contravariant.
istr = iobj;
}
}

out的使用

个人理解:out就是小变大

// Contravariant interface.
interface IContravariant<in A> { } // Extending contravariant interface.
interface IExtContravariant<in A> : IContravariant<A> { } // Implementing contravariant interface.
class Sample<A> : IContravariant<A> { } class Program
{
static void Test()
{
IContravariant<Object> iobj = new Sample<Object>();
IContravariant<String> istr = new Sample<String>(); // You can assign iobj to istr because
// the IContravariant interface is contravariant.
istr = iobj;
}
}

最新文章

  1. windows Server 2008各版本区别详解
  2. Xcode 8 打印输出: Class PLBuildVersion is implemented in both...
  3. Duang的成长——使用造字程序输入生僻字
  4. php基础15:表单验证
  5. Hibernate解决n+1问题
  6. 【Leetcode】 LRU Cache实现
  7. iOS学习笔记---oc语言第八天
  8. Oracle数据库 External component has thrown an exception
  9. 关于SQL查询效率,100w数据,查询只要1秒
  10. 40个Java集合面试问题和答案【上】【转载】
  11. UVA 10317 - Equating Equations (背包)
  12. NHibernate教程(11)--多对多关联查询
  13. 朴素贝叶斯分类法 Naive Bayes ---R
  14. idea生成类注释和方法注释的正确方法
  15. 【log4net】配置文件解释
  16. MYSQL去除&quot;/r/n&quot;
  17. [转]五种常见的 PHP 设计模式
  18. springbatch----&gt;springbatch的使用(六)
  19. VC编译错误: Nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12已经在dllmain.obj 中定义
  20. javascript中操作元素属性

热门文章

  1. C#可定制的数据库备份和恢复程序 (讲解流程)
  2. 格伦布编码——rice编码无非是golomb编码M为2^x的特例
  3. python 函数参数的传递(参数带星号的说明)
  4. Docker For MYSQL 8.0 特别注意修复数据库新的验证方式
  5. Django day06 模版层(一) 变量和深度查询
  6. CSS3 中弹性盒模型--容器的属性
  7. 【题解】【CodeForces712C】Memory and De-Evolution
  8. python 4:str.lstrip()、str.rstrip()、str.strip()(分别去除首空格,尾空格,首尾空格;不改变原有变量,除非赋给)
  9. A - Voting(queue)
  10. MySQL学习笔记之右连接