Asp.Net教程,WinForm教程,Asp.Net MVC,vs2008教程,vs2010教程,Silverlight技术,源码下载,Asp.Net视频教程
全站热门标签
vs2010 Silverlight 存储过程 水晶报表 ADO.NET JavaScript LINQ AjaxPro DataGridView 面向对象 Extjs GridView XML DevExpress HTML教程 Oracle jQuery 分页 GDI+ Visual C++2010 MySQL Office2010 WPF MVC Dojo WCF4.0 VB.NET Sql2005 textbox cookie WCF WinForm Discuz!NT SQL经典语句 T-SQL checkbox ASPxGridView F# asp.net SQL VS2008新特性 DropDownList Access TreeView Ajax VS2008 页面执行时间 Flex 字符串 回调 VB2005 DataSet C#时间 ASP.NET性能优化 用户在线检测 动画
当前位置: 主页 > vs2010教程 >

Visual Studio2010讲解C#4.0语法(1)--使用匿名委托简化程序

时间:2010-08-06 18:12来源:未知 作者:admin 点击:

首先打开Visual Studio2010创建一个基于C#的ConsoleApplication工程AnonDelegates

创建成功进入工程后,我们在Program.cs文件里写入如下代码:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
 
namespace AnonDelegates  
{  
 
    // 定义委托方法  
    delegate decimal CalculateBonus(decimal sales);  
 
    // 定义一个Employee类  
    class Employee  
    {  
        public string name;  
        public decimal sales;  
        public decimal bonus;  
        public CalculateBonus calculation_algorithm;  
    }  
 
    class Program  
    {  
 
        //这个类定义了两个代表,将执行计算。  
        //首先将是一个命名方法,第二个匿名委托。  
        //这是命名方法。  
        //它定义了一个计算奖金的算法有可能实施。  
 
        static decimal CalculateStandardBonus(decimal sales)  
        {  
            return sales / 10;  
        }  
 
        static void Main(string[] args)  
        {  
 
            //一个用于计算奖金的价值的局部变量。  
            //注:此局部变量将成为“捕获外部变量”。  
            decimal multiplier = 2;  
 
            // 这个委托被定义为一个命名方法。  
            CalculateBonus standard_bonus = new CalculateBonus(CalculateStandardBonus);  
 
            //这个委托是匿名的 - 没有命名方法。  
            //它定义了一个替代奖金计算算法。  
            CalculateBonus enhanced_bonus = delegate(decimal sales) { return multiplier * sales / 10; };  
 
            // 声明雇员对象。  
            Employee[] staff = new Employee[5];  
 
            // 填充雇员数组。  
            for (int i = 0; i < 5; i++)  
                staff[i] = new Employee();  
 
            // 初始化雇员对象  
            staff[0].name = "Mr Apple";  
            staff[0].sales = 100;  
            staff[0].calculation_algorithm = standard_bonus;  
 
            staff[1].name = "Ms Banana";  
            staff[1].sales = 200;  
            staff[1].calculation_algorithm = standard_bonus;  
 
            staff[2].name = "Mr Cherry";  
            staff[2].sales = 300;  
            staff[2].calculation_algorithm = standard_bonus;  
 
            staff[3].name = "Mr Date";  
            staff[3].sales = 100;  
            staff[3].calculation_algorithm = enhanced_bonus;  
 
            staff[4].name = "Ms Elderberry";  
            staff[4].sales = 250;  
            staff[4].calculation_algorithm = enhanced_bonus;  
 
            // 为所有雇员计算奖金  
            foreach (Employee person in staff)  
                PerformBonusCalculation(person);  
 
            // 显示所有雇员的详细资料  
            foreach (Employee person in staff)  
                DisplayPersonDetails(person);  
 
            Console.Read();  
 
        }  
 
        public static void PerformBonusCalculation(Employee person)  
        {  
 
            //此方法使用储存在人的委托对象  
            //来执行计算。  
            //注意:此方法知道的乘数局部变量,即使  
            //该变量超出了该方法的范围。  
            //该multipler varaible是一个“捕获外部变量”。  
            person.bonus = person.calculation_algorithm(person.sales);  
        }  
 
        public static void DisplayPersonDetails(Employee person)  
        {  
            Console.WriteLine(person.name);  
            Console.WriteLine(person.bonus);  
            Console.WriteLine("---------------");  
        }  
    }  

按下F5开始调试,运行界面如下:


 

 

(责任编辑:admin)
Tags:vs2010 C#4.0 委托
责任编辑:admin
返回顶部
------分隔线----------------------------
推荐内容
骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价 骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价