求最大的数(四):泛型委托
来源:互联网 发布:微云直链解析php源码 编辑:程序博客网 时间:2024/06/16 05:12
一 : 泛型委托
二 代码
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Xml;namespace CsharpConsoleApplication{ public delegate bool MyMaxObjDelegate<T>(T max,T obj); class Program { static void Main(string[] args) { object objMax; //求整形数组里最大的整数 int[] num = {3,8,2,13,5,21};//这里 不需要定义成object数组了,因为用了泛型 objMax = GetMax(num, GetMaxInt); System.Console.WriteLine("数组里最大的整数: "+ (int)objMax); //求学生里分数最高的学生的名字 STUDENT[] stu = { new STUDENT() { name = "小明", score = 98 }, new STUDENT() { name = "胖子", score = 78 }, new STUDENT() { name = "大头", score = 88 } }; objMax = GetMax(stu, GetMaxStudent); System.Console.WriteLine("学生里分数最高的名字: " + ((STUDENT)objMax).name); System.Console.ReadLine(); } static public T GetMax<T>(T[] obj, MyMaxObjDelegate<T> del) //泛型 { T objMax = obj[0]; int i = 0 ; for( i= 0 ; i<obj.Length ; i++) { if (del(objMax, obj[i])) { objMax = obj[i]; } } return objMax; } static public bool GetMaxInt(int max,int num) { bool flag = false; if (max < num) { flag = true; } return flag; } static public bool GetMaxStudent(STUDENT max, STUDENT stu) { bool flag = false; if ( max.score < stu.score ) { flag = true; } return flag; } } class STUDENT { public string name { get; set; } public int score { get; set; } }}
三 为什么要用泛型:
避免拆箱装箱
0 0
- 求最大的数(四):泛型委托
- 求最大的数(二):利用委托改成一个入口函数
- 求一个最大的数
- 求最大的数(一)
- 求三个数中最大的数
- 求四个数中的最大的数
- 求十个数中最大的数
- C#--求三个数的最大数
- C#程序设计(四)----十个数求最大最小平均值
- 【C++】联发科初赛四题《求最大最小数》
- 求两者中最大的数
- 求两个数的最大公因数
- 求第K个最大的数
- 求四个数的最大者
- 求四个数最大的公约数
- 求四个数中最大的
- hdoj2136 求数的最大素数因子
- 求两个数的最大公约公倍数
- Python之协同过滤(寻找相近的用户)
- 寒假竞赛时间规划
- Monkey环境搭建(Windows)
- Appsettings 与connectionStrings的区别
- Caffe容器中如何用GPU跑mnist数据集
- 求最大的数(四):泛型委托
- c++中的指针和引用
- 九度 oj 题目1080:进制转换
- 错误提示:Syntax error on token "function", delete this token
- msys2, vim, ctags,codeblocks, cmake
- 问题五十一:怎么用ray tracing画tear drop
- 栈、队列&leetcode225&155&232
- 学习笔记-对抗生成网络
- 利用python进行性能测试(下)