C#--in逆变-out协变
2024-08-25 23:25:16
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;
}
}
最新文章
- windows Server 2008各版本区别详解
- Xcode 8 打印输出: Class PLBuildVersion is implemented in both...
- Duang的成长——使用造字程序输入生僻字
- php基础15:表单验证
- Hibernate解决n+1问题
- 【Leetcode】 LRU Cache实现
- iOS学习笔记---oc语言第八天
- Oracle数据库 External component has thrown an exception
- 关于SQL查询效率,100w数据,查询只要1秒
- 40个Java集合面试问题和答案【上】【转载】
- UVA 10317 - Equating Equations (背包)
- NHibernate教程(11)--多对多关联查询
- 朴素贝叶斯分类法 Naive Bayes ---R
- idea生成类注释和方法注释的正确方法
- 【log4net】配置文件解释
- MYSQL去除";/r/n";
- [转]五种常见的 PHP 设计模式
- springbatch---->;springbatch的使用(六)
- VC编译错误: Nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12已经在dllmain.obj 中定义
- javascript中操作元素属性
热门文章
- C#可定制的数据库备份和恢复程序 (讲解流程)
- 格伦布编码——rice编码无非是golomb编码M为2^x的特例
- python 函数参数的传递(参数带星号的说明)
- Docker For MYSQL 8.0 特别注意修复数据库新的验证方式
- Django day06 模版层(一) 变量和深度查询
- CSS3 中弹性盒模型--容器的属性
- 【题解】【CodeForces712C】Memory and De-Evolution
- python 4:str.lstrip()、str.rstrip()、str.strip()(分别去除首空格,尾空格,首尾空格;不改变原有变量,除非赋给)
- A - Voting(queue)
- MySQL学习笔记之右连接