C#学习笔记之泛型-泛型方法

 时间:2024-10-21 15:33:18

1、首先来看一下如何定义泛型方法,Swap<T>()方法把T定义为泛型类型,该泛型类型用于两个参数和一个变量temp:如下图所示:把泛型类型赋予方法调用,就可以调用泛型方法:int i=4;int j=5;Swap<int>(ref i,ref j);但是,因为C#编译器会通过调用Swap()方法来获取参数的类型,所以不需要把泛型类型赋予方法调用,泛型方法可以像非泛型方法这样调用:int i=4;int j=5;swap(ref i,ref j);

C#学习笔记之泛型-泛型方法

3、其中累加余额的所有账户操作都添加到List<Account>类型的账户列表中:var account=new List<Account>(){new Account("1",1000);new Account("2",3000);new Account("3",4000);new Account("4",4000);};累加所有Account对象的表达式用foreach语句遍历所有的Account对象,如下图所示。foreach语句使用IEnumerable接口迭代集合的元素,所以AccumulateSimple()方法的参数是IEnumerable类型。

C#学习笔记之泛型-泛型方法

5、带委托的泛型方法:泛型类型实现Iaccount接口的要求过于严格,下面的示例提示了,如何通过传递一个泛锸责氧铼型委托来修改Accumulate()方法。这个Accumulate()方法使用两个泛型参数T1和T2。第一个参数T1用于实现IEnumerable<T1>参数的集合,第二个参数使用泛型委托Fun<T1,T2,TResult>.其中,第二个和第三个泛型参数都是T2的类型。需要传递的方法有两个输入参数(T1和T2)和一个T2类型的返回值,如下所示:调用该方法时,需要指定泛型参数类型,因为编译器不能自动推断出该类型:decimal amount=Algorithms.accumulateSimple<Account,decimal>(accounts,(item,sum))=>sum+=item.Balance;

C#学习笔记之泛型-泛型方法
  • 如何使用WinScp对比Linux与本地有差异的文件
  • 网上兼职需谨慎!打字员诈骗亲身经历!
  • 冬季老人外出需要注意的问题
  • 武侠乂X有什么武器防具装备秘籍道具
  • 色母粒颜色不白,用什么增白剂以及使用方法
  • 热门搜索
    夏季旅游鞋 健康旅游 国内旅游景点介绍 最佳旅游景点 10月份去哪旅游最好 旅游团团购 运城旅游网 安康旅游局 e龙旅游网 旅游卫视国学堂