C#创建委托实例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyDelegate
{
    class Program
    {
        static void Main(string[] args)
        {
            List<User> users = GetUsers();

            //1.传统方式实例化委托实例
            users = users.OrderBy(new Func<User, int>(OrderType)).ToList();

            //2.委托参数采用匿名函数代替函数名
            users = users.OrderBy(new Func<User, int>(delegate(User user)
            {
                return user.Number;
            })).ToList();

            ////3.匿名函数直接创建委托实例
            users = users.OrderBy(delegate(User user)
            {
                return user.Number;
            }).ToList();

            ////4.lambda表达式本质:用于创建委托的匿名函数
            users = users.OrderBy(user => user.Number).ToList();

            //输出
            users.ForEach(x =>
            {
                Console.WriteLine("Number{0}:Name{1}:Age:{2}", x.Number, x.Name, x.Age);
            });

            //暂停
            Console.Read();
        }

        /// <summary>
        /// 排序方式
        /// </summary>
        /// <param name="arg"></param>
        /// <returns></returns>
        private static int OrderType(User user)
        {
            return user.Number;  //按照编号排序
        }

        private static List<User>  GetUsers()
        {
            List<User> users = new List<User>();
            User user1 = new User(3, "张三", 19);
            User user2 = new User(2, "李四", 27);
            User user3 = new User(1, "王五", 12);
            users.Add(user1);
            users.Add(user2);
            users.Add(user3);
            return users;
        }
    }
}

C#创建委托实例

时间: 2024-08-30 01:55:49

C#创建委托实例的相关文章

C#委托实例

C# 委托实例 ,关键词 :delegate 下面是微软给出的官方解释,自行感受一下,   本质就是把方法当作参数使用 delegate 是表示对具有特定参数列表和返回类型的方法的引用的类型. 在实例化委托时,你可以将其实例与任何具有兼容签名和返回类型的方法相关联. 你可以通过委托实例调用方法. 委托用于将方法作为参数传递给其他方法. 事件处理程序就是通过委托调用的方法. 你可以创建一个自定义方法,当发生特定事件时,某个类(如 Windows 控件)就可以调用你的方法. 下面的示例演示了一个委托

使用反射动态创建类型实例

.NET中除了构造函数外,还有多种方式可以创建类型的实例.下面总结了几种常见的通过反射创建类型实例的方法. 假设我们需要创建有这样一个类型的实例: public class Employee { public String Name { get; set; } public Employee(String name) { Name = name; } public Employee () { } public void Say(String greeting) { Console.WriteLi

域初始化、静态块及构造方法等在创建类实例时的执行顺序(转载)

在<Core java 2: volumn 1, Edition 5>一书的第四章“对象与类”中讲到域赋值语句.实例块.静态块及构造方法等在创建类实例时的执行顺序,中文译本有些处翻译的不贴切,而英文原书中也有一处错误.本文通过一个小程序来说明类实例构造过程中的语句执行顺序. 程序如下: public class Teststaticblock { public Teststaticblock() { this("second"); System.out.println(&q

ORACLE 10g创建单实例 ASM

1.启动CSS服务 bash-3.2# /export/home/oracle/app/ora10g/product/10gr2/bin/localconfig add 2.创建初始化实例文件 [[email protected] ~/app/ora10g/product/10gr2/dbs 12:33:48]$cat asmpfile.ora instance_type=asm processes=100 3.修改磁盘归属 [[email protected] dev]# ll /dev/sd

eclipse创建servlet实例

今天花了一段时间利用eclipse创建servlet实例,但是一直没法通过浏览器访问,奔溃,后来发现一个问题,用dynamic web 工程部署到tomcat之后,并没有对应在工程中创建的类,也就是说没有classes文件夹,然后通过在WebContent目录下的WEB-INF下建立classes文件夹,并创建对应的包和java类,这些类会同步到src文件夹下,除此之外,配置了web.xml文件,最终run on server,就可以通过浏览器访问servlet了,具体程序如下. 代码 提取码:

python使用 minidom创建xml实例

python创建xml实例 模仿下面的xml文件,使用python脚本进行创建. <?xml version='1.0'?> <database> <user username="user" fromAddress="[email protected]" fullName="John Q. User" password="pass"> <subscription host="

使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法

Java提供了Class类,可以通过编程方式获取类别的字段和方法,包括构造方法 获取Class类实例的方法: 类名.class 实例名.getClass() Class.forName(className) public class RefTest { @Test public void testRef(){ //Class cls = RefTest.class; //Class.forName("com.jboa.service.RefTest"); //new RefTest()

SQL Network Interfaces, error: 50 - 发生了 Local Database Runtime 错误。无法创建自动实例。

今天在用VS2013自带的LocalDB调整数据库时出错,在网上也搜到许多方案,如卸载SQLServer LocalDB的程序.重新创建实例等都没有解决我的问题,也重新修改以及修复Vs,问题依旧存在,仔细思索研究后找到了解决方案: 1.先贴问题(注:我这里是LocalDB V11.0不能使用): Microsoft Visual Studio --------------------------- 尝试附加到数据库失败并出现以下信息: 在与 SQL Server 建立连接时出现与网络相关的或特定

oracle的环境配置-单独创建数据库实例

单独创建数据库实例 数据库1    数据库2ORCL        LAW  ------RDBMS(服务)  |                  |-----------------------    安装数据库软件(DBMS) 单独再创建一个RDBMS--LAW [[email protected] ~]# xhost +access control disabled, clients can connect from any host  --自动启动了xmanager passive[[