namespace test
{ // 泛型的协变,T 只能作为返回的参数
public interface Class1<out T>
{
T Get();
int Count { get; }
}
public class Class2 : Class1<String>
{
public String Get()
{
return "";
}
public int Count { get { return ; } }
}
// 泛型的抗变,T在方法中只能作为传入参数
public interface Class3<in T>
{
void Get(T t); // 作为参数
// T GetT();//报错
}
public class Class4 : Class3<int>
{
public void Get(int age)
{ } }
}

使用out(协变)可以实例化 子类,协变  : 可以让右边 用子类,让泛型更方便

不加  out  报错:

逆变 : 可以让右边 用父类,实例化父类

泛型委托

 public delegate void delega<in T>(string name);

        static  void  get<T>(string name)
{ }
static void Main(string[] args)
{
delega<int> delega = new delega<int>(get<int>);
delega += new delega<int>(get<string>);

  

最新文章

  1. java---相亲练习
  2. 鸟哥的linux私房菜之档案与文件系统的压缩与打包
  3. WPF Step By Step 完整布局介绍
  4. JavaScript Type Conversion
  5. ModSecurity--web应用防火墙
  6. 九度OJ 1455 珍惜现在,感恩生活 -- 动态规划(背包问题)
  7. Java---类反射(2)---类反射加强
  8. python常用的一些东西——sys、os等
  9. Nodejs.sublime-build 在sublime3中的配置
  10. hdu--1026--Ignatius and the Princess I(bfs搜索+dfs(打印路径))
  11. mysql3 - 常规数据检索、常见操作与函数
  12. 【Spark篇】---Spark中Shuffle机制,SparkShuffle和SortShuffle
  13. 从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域
  14. libvirt虚拟库
  15. C# 左右补零
  16. 学习Spring Boot:(十三)配置 Shiro 权限认证
  17. [转载] My97DatePicker日历实现开始日期小于结束日期验证
  18. 执行Android项目时指定特定的AVD进行測试
  19. mysql-存储过程(转载)
  20. mtv网站架构模式适合企业网站应用吗?

热门文章

  1. PHP curl_escape函数
  2. PHP curl_errno函数
  3. 【HDOJ6602】Longest Subarray(线段树,vector)
  4. 用C#编写ActiveX控件
  5. Bugku | 数字验证正则绕过
  6. [CSP-S模拟测试]:回文串(hash+二分)
  7. 防止NSTimer和调用对象之间的循环引用
  8. net core 发布docker镜像的官方写法
  9. 【SpingBoot】 测试如何使用SpringBoot搭建一个简单后台1
  10. 用shell脚本实现MongoDB数据库自动备份