.Net 委托 delegate 学习
{
Console.WriteLine("DoSome");
}
{
return num * num;
}
doSome += new Action(DoSome);
doSome += DoSome;
- public class Student
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public int ClassId { get; set; }
- public int Age { get; set; }
- }
- public static class StudentManager
- {
- public static List<Student> students = new List<Student>()
- {
- new Student(){ Id=,Name="张三",ClassId=,Age= },
- new Student(){ Id=,Name="李四",ClassId=,Age= },
- new Student(){ Id=,Name="王五",ClassId=,Age= },
- new Student(){ Id=,Name="赵六",ClassId=,Age= },
- new Student(){ Id=,Name="杨幂",ClassId=,Age= },
- new Student(){ Id=,Name="范冰冰",ClassId=,Age= },
- new Student(){ Id=,Name="张学友",ClassId=,Age=},
- new Student(){ Id=,Name="张三1",ClassId=,Age= },
- new Student(){ Id=,Name="张三2",ClassId=,Age= },
- new Student(){ Id=,Name="张三3",ClassId=,Age= },
- new Student(){ Id=,Name="张三4",ClassId=,Age= },
- new Student(){ Id=,Name="张三5",ClassId=,Age= },
- new Student(){ Id=,Name="张三6",ClassId=,Age= },
- new Student(){ Id=,Name="张三7",ClassId=,Age= },
- new Student(){ Id=,Name="张三8",ClassId=,Age= },
- new Student(){ Id=,Name="张三9",ClassId=,Age= },
- new Student(){ Id=,Name="张三0",ClassId=,Age= },
- new Student(){ Id=,Name="张三11",ClassId=,Age= },
- new Student(){ Id=,Name="张三a",ClassId=,Age= },
- new Student(){ Id=,Name="张三b",ClassId=,Age= },
- new Student(){ Id=,Name="张三c",ClassId=,Age= },
- new Student(){ Id=,Name="张三d",ClassId=,Age= },
- new Student(){ Id=,Name="张三e",ClassId=,Age= },
- new Student(){ Id=,Name="张三f",ClassId=,Age= },
- new Student(){ Id=,Name="张三g",ClassId=,Age= },
- new Student(){ Id=,Name="张三h",ClassId=,Age= },
- new Student(){ Id=,Name="张三i",ClassId=,Age= },
- new Student(){ Id=,Name="张三j",ClassId=,Age= },
- new Student(){ Id=,Name="张三k",ClassId=,Age= },
- };
- public static List<Student> FindStudents(Func<Student,bool> func)
- {
- List<Student> stus = new List<Student>();
- foreach (var item in students)
- {
- if (func(item))
- {
- stus.Add(item);
- }
- }
- return stus;
- }
- /// <summary>
- /// 查找ClassId为3001的学生
- /// </summary>
- /// <param name="student">学生</param>
- /// <returns>是否为3001班级的学生</returns>
- public static bool GetClassId(Student student)
- {
- if (student.ClassId==)
- {
- return true;
- }
- return false;
- }
- /// <summary>
- /// 年龄大于20的学生
- /// </summary>
- /// <param name="student"></param>
- /// <returns></returns>
- public static bool GetBigAge(Student student)
- {
- if (student.Age>)
- {
- return true;
- }
- return false;
- }
- /// <summary>
- /// 年龄大于15 并且ClassId为1021
- /// </summary>
- /// <param name="student"></param>
- /// <returns></returns>
- public static bool GetStuByClassIdAndAge(Student student)
- {
- if (student.Age > && student.ClassId==)
- {
- return true;
- }
- return false;
- }
- }
下面这个是在Main方法中执行查询学生
- //List<Student> stus = StudentManager.students;
- //Console.WriteLine("姓名---年龄---班级--编号");
- //foreach (var item in stus)
- //{
- // Console.WriteLine(item.Name+"---"+item.Age+"---"+item.ClassId+"---"+item.Id);
- //}
- List<Student> stus1= StudentManager.FindStudents(StudentManager.GetStuByClassIdAndAge);
- Console.WriteLine("姓名---年龄---班级--编号");
- foreach (var item in stus1)
- {
- Console.WriteLine(item.Name + "---" + item.Age + "---" + item.ClassId + "---" + item.Id);
- }
.Net 委托 delegate 学习的更多相关文章
- IOS开发使用委托delegate在不同窗口之间传递数据
IOS开发使用委托delegate在不同窗口之间传递数据是本文要介绍的内容,主要是来讲解如何使用委托delegate在不同窗口之间传递数据,具体内容来看详细内容.在IOS开发里两个UIView窗口之间 ...
- [.NET] C# 知识回顾 - 委托 delegate (续)
C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...
- [C#] C# 知识回顾 - 委托 delegate
C# 知识回顾 - 委托 delegate [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6031892.html 目录 What's 委托 委托的属性 ...
- C# 委托Delegate(一) 基础介绍&用法
本文是根据书本&网络 前人总结的. 1. 前言 定义&介绍: 委托Delegate是一个类,定义了方法的类型, 使得可以将方法当做另一个方法的参数来进行传递,这种将方法动态地赋给参数的 ...
- 为什么不能把委托(delegate)放在一个接口(interface)当中?
stackoverflow上有人问,为什么不能把委托放在一个接口当中? 投票最多的第一个答案第一句话说,“A Delegate is just another type, so you don't g ...
- C# 代理/委托 Delegate
本文转载自努力,努力,努力 1. 委托的定义:委托是函数的封装,它代表一"类"函数.他们都符合一定的签名:拥有相同的参数列表,返回值类型.同时,委托也可以看成是对函数的抽象,是函数 ...
- c# 委托 delegate
委托是一种存储函数引用的类型,在事件和事件的处理时有重要的用途 通俗的说,委托是一个可以引用方法的类型,当创建一个委托,也就创建一个引用方法的变量,进而就可以调用那个方法,即委托可以调用它所指的方法. ...
- 理解委托(delegate)及为什么要使用委托
理解委托(delegate)及为什么要使用委托 委托:是一种定义方法签名的类型. 当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联. 您可以通过委托实例调用方法. 上述为官方说法,理解起来 ...
- 深入理解委托(Delegate)
前言 委托其实一直以来都感觉自己应该挺熟悉的,直到最近又去翻了翻 CLR via C#,感觉我之前的理解可能还有失偏颇.在这记录一下. 之前文章的链接: 接口和委托的泛型可变性 C#高级编程笔记 De ...
随机推荐
- nodejs-5.2 axios请求
1.npm官方文档:https://www.npmjs.com/package/axios 2.axios:用于 浏览器 和 node.js的基于Promise的HTTP客户端 请求 特征 从浏览器制 ...
- java中八大基本数据类型详解
1.基本数据类型的分类 java中的类型分为基本数据类型和引用类型,今天我们讨论的是java中的八大基本数据类型. 基本数据类型可以分为三类:1.数值类型.2.字符类型.3.布尔类型. 数值类型又分为 ...
- C++的代理类
怎样在一个容器中包含类型不同,但是彼此有关系的对象?众所周知,C++的容器只能存放类型相同的元素,所以直接在一个容器中存储不同类型的对象本身是不可能的,只能通过以下两种方案实现: 1. 提供一个间接层 ...
- Spark学习之编程进阶总结(一)
一.简介 这次介绍前面没有提及的 Spark 编程的各种进阶特性,会介绍两种类型的共享变量:累加器(accumulator)与广播变量(broadcast variable).累加器用来对信息进行聚合 ...
- Visio打开或取消箭头的自动吸附和自动连接
在用Visio画图时Visio的自动对齐.自动连接.自动吸附功能确实能带了很多便利.但在画连接线时,Visio总是自动连接箭头与图形的固定节点,想要微调一下连接位置,就显得很不方便,需要关闭自动连接功 ...
- Redis--Memched--Cache缓存介绍使用
目录: 一.分布式缓存—Redis与Memched的区别 1.1. 数据支持类型 1.2. 持久性 1.3. 内存利用情况 1.4. 数据一致性 1.5. ...
- idea配github
下面步骤的三个前提条件:安装git 安装idea 注册github账号 步骤一.绑定我的github账号与我的计算机 绑定我的github账号与我的计算机之后,便能很方便地上传或者更新我的代码,这需要 ...
- 20180726 - Windows 10 Pro 下远程桌面连接提示“出现身份验证错误”
问题:Windows 10 Pro 下远程桌面连接提示“出现身份验证错误” [Window Title]远程桌面连接 [Content]出现身份验证错误.要求的函数不受支持 远程计算机: 192.16 ...
- python3 完全理解赋值,浅copy,深copy 通过地址详细理解~
额...老规矩,先来一天NLP再说,也没几条了. 十,在任何一个系统里,最灵活的部分是最能影响大局的部分 灵活便是有一个以上的选择,选择便是能力,因此最灵活的人便是最有能力的人. 灵活来自减少只相信自 ...
- 一键解决更改计算机名后无法启动MSSQLSERVER服务问题
问题版本:SQL Server 2012. 解决办法:打开服务,Win + R运行services.msc,找到 SQL SERVER(MSSQLSERVER)服务右键->属性,切换至登录选项卡 ...