.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 ...
随机推荐
- springboot mybatis 多数据源配置
首先导入mybatis等包,这里就不多说. 下面是配置多数据源和mybatis,每个数据源对应一套mybatis模板 数据源1: package com.aaaaaaa.config.datasour ...
- monkey------模块组合测试
由于项目基本功能和预置APK都很多,单个模块跑消耗机器数量很大,效果也不佳.而且monkey测试经常要过夜测试,所以组合模块试用较多,而且发现问题量也更大.组合模块就是按照测试标准要求和模块特性,按照 ...
- C# 语言历史版本特性(C# 1.0到C# 8.0汇总)
历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECM ...
- 程序设计语言——实践之路 笔记:Beginning
这本书已经看了不下3遍了,计划在6月写完1,3,6,7,8,9章的笔记. 为什么要写笔记呢,我觉得有这么几个必要: 1.一个概念的首次提出与补充会跨越几个章节,整理在一起有助记忆 2.所有书籍的安排都 ...
- 5.2基于JWT的令牌生成和定制「深入浅出ASP.NET Core系列」
希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. Token生成 我们知道一旦我们给API添加[Authorize] ...
- Mybatis-Plus入门示例
1.内容: Mybatis-Plus只是在Mybatis的基础上,实现了功能增强,让开发更加简洁高效. Mybatis-Plus并没有修改Mybatis的任何特性. 2.入门示例: 2.1 需求:使用 ...
- solr的认识、linux下安装、java下使用(含下载资源)
目录 一.solr的大概认识 二.solr安装 三.solr的深度认识 四.solr的使用 (1)由于我们用到中文,所以需要中文分析器,这里我用IK Analyzer 2012FF_hf1 (2)同时 ...
- Windows Server 2016-DNS 新增或改进功能
本章节补充介绍在 Windows Server 2016 中域名系统 (DNS) 服务器新增或已更改的功能相关信息,具体内容如下: 功能 新增或改进 描述 DNS 策略 新增 您可以配置 DNS 策略 ...
- JavaScript中的 NaN 与 isNaN
NaN NaN 即 Not a Number ,不是一个数字. 在 JavaScript 中,整数和浮点数都统称为 Number 类型 .除此之外,Number 类型还有一个很特殊的值,即 NaN . ...
- [AI开发]centOS7.5上基于keras/tensorflow深度学习环境搭建
这篇文章详细介绍在centOS7.5上搭建基于keras/tensorflow的深度学习环境,该环境可用于实际生产.本人现在非常熟练linux(Ubuntu/centOS/openSUSE).wind ...