using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 泛型委托
{
//委托中使用泛型
public delegate int DeleCompare<T>(T t1,T t2);
class Program
{
static void Main(string[] args)
{
int[] nums = { , ,, , , };
object maxInt = GetMax<int>(nums, CompareInt); string[] names = { "ac", "dgjd", "dsfjeirjgrioeg","cdd" };
//1 使用匿名函数
//object maxString = GetMax<string>(names, delegate(string s1, string s2)
//{
// return s1.Length - s2.Length;
//}); //2 使用lamda表达式
object maxString = GetMax<string>(names, (string s1, string s2) =>
{
return s1.Length - s2.Length;
}); Console.WriteLine(maxInt);
Console.WriteLine(maxString); Console.ReadKey();
} public static T GetMax<T>( T[] nums,DeleCompare<T> dele)
{
T max = nums[]; for( int i = ; i < nums.Length; i++)
{
if(dele(max,nums[i]) < )
{
max = nums[i];
}
} return max;
} public static int CompareInt(int num1,int num2)
{
return num1 - num2;
}
}
}

C# 泛型和委托的更多相关文章

  1. 泛型加委托在EF下的操作例子

    接下来放一个用SqlBulkCopy插入数据的例子,运用了泛型委托和反射.就当好好的运用这些知识. public static void AddEntityByBulk(IList entitys,s ...

  2. 泛型委托 Predicate/Func/Action

    Predicate 泛型委托  表示定义一组条件并确定指定对象是否符合这些条件的方法.此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素.看看下面它的定义: // Summar ...

  3. 编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]

    前言 泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能.基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型,确保了类型安全.委托 ...

  4. C#的泛型委托Predicate/Func/Action(转)

    Predicate 泛型委托:表示定义一组条件并确定指定对象是否符合这些条件的方法.此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素. 类型参数介绍:    T: 要比较的对 ...

  5. 使用.NET中的Action及Func泛型委托

          委托,在C#编程中占有极其重要的地位,委托可以将函数封装到委托对象中,并且多个委托可以合并为一个委托,委托对象则可以像普通对象一样被存储.传递,之后在任何时刻进行调用,因此,C#中函数回调 ...

  6. 【C#复习总结】细说泛型委托

    1 前言 本系列会将[委托] [匿名方法][Lambda表达式] [泛型委托] [表达式树] [事件]等基础知识总结一下.(本人小白一枚,有错误的地方希望大佬指正) 系类1:细说委托 系类2:细说匿名 ...

  7. 泛型委托Action与ActionT

    以前都是自己写委托,其实系统内部给我们系统了委托的. Action ——委托的非泛型版本就是一个无参数无返回值的委托. Action<T>——委托的泛型版本是一个无返回值,但是参数个数及类 ...

  8. C#规范整理·泛型委托事件

    基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型,确保了类型安全.委托本身是一种引用类型,它保存的也是托管堆中对象的引用,只不过这个引用比较特殊,它是 ...

  9. .NET面试题系列[7] - 委托与事件

    委托和事件 委托在C#中具有无比重要的地位. C#中的委托可以说俯拾即是,从LINQ中的lambda表达式到(包括但不限于)winform,wpf中的各种事件都有着委托的身影.C#中如果没有了事件,那 ...

随机推荐

  1. IPV6路由技术

    OSPFV3 一.OSPFv3概述:协议号89 1.概念: OSPFv3是ospf(开放式最短路径优先)版本3的简称,主要提供对IPV6的支持,遵循的标准为RFC2740(OSPF for IPv6) ...

  2. python 的 购物小程序

    money = input('请输入您的工资:') shop = [("iphone",5800),("ipod",3000),("book" ...

  3. MongoDB入门---文档查询操作之条件查询&and查询&or查询

    经过前几天的学习之路,今天终于到了重头戏了.那就是文档查询操作.话不多说哈,直接看下语法: db.collection.find(query, projection) query :可选,使用查询操作 ...

  4. 成都Uber优步司机奖励政策(1月28日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. [Python3.X]python 实现斐波那契数列

    斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一 ...

  6. LWM2M的DISCOVER操作

    1. 先看下DISCOVER的数据流,工作服务器下发的指令到设备客户端 2. 解释,这个操作是用来发现Object, Object Instances, and Resources的属性,同时可以发现 ...

  7. Express 总结

    Express Express提供了一个轻量级模块,把nodejs的http功能封装在一个简单易用的接口中.Express也扩展了http模块的功能,能轻松处理服务器的路由.响应.cookie和HTT ...

  8. Webservice HTTP

    由于项目需要:自己写了一个WebserviceDemo,把遇到的问题记下来. 方式一 :使用代理类来访问Webservice,此方式不讲解,感觉复杂(神坑). (生成的代理路径 C:\Users\ad ...

  9. FastJson - 从HttpEntity到Json

    在使用java + httpClient施行API自动化时,不可避免地遇到了如下问题: 1. 用Http Response数据做断言: 2. 用上一个请求的Response内容,作为下一个请求的参数: ...

  10. Qt Creator 下启动vim模式后,运行快捷键Ctrl+R失效解决方案

    首先开启vim后,Ctrl+R无法用 解决: 工具 -> 选项->FakeVim 转到Ex Command Mapping 搜索Run 底栏Regular expression 输入run ...