ylbtech-Unitity-CS:AnonymousDelegates
1.A,效果图返回顶部
 
1.B,源代码返回顶部
1.B.1,

using System;
using System.Collections.Generic;
using System.Text; namespace AnonymousDelegate_Sample
{ // 定义委托方法。
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 / ;
} static void Main(string[] args)
{ // 奖金计算中用到的值。
// 注意: 此局部变量将变为“捕获的外部变量”。
decimal multiplier = ; // 将此委托定义为命名方法。
CalculateBonus standard_bonus = new CalculateBonus(CalculateStandardBonus); // 此委托是匿名的,没有命名方法。
// 它定义了一个备选的奖金计算算法。
CalculateBonus enhanced_bonus = delegate(decimal sales) { return multiplier * sales / ; }; // 声明一些 Employee 对象。
Employee[] staff = new Employee[]; // 填充 Employees 数组。
for (int i = ; i < ; i++)
staff[i] = new Employee(); // 将初始值赋给 Employees。
staff[].name = "Mr Apple";
staff[].sales = ;
staff[].calculation_algorithm = standard_bonus; staff[].name = "Ms Banana";
staff[].sales = ;
staff[].calculation_algorithm = standard_bonus; staff[].name = "Mr Cherry";
staff[].sales = ;
staff[].calculation_algorithm = standard_bonus; staff[].name = "Mr Date";
staff[].sales = ;
staff[].calculation_algorithm = enhanced_bonus; staff[].name = "Ms Elderberry";
staff[].sales = ;
staff[].calculation_algorithm = enhanced_bonus; // 计算所有 Employee 的奖金
foreach (Employee person in staff)
PerformBonusCalculation(person); // 显示所有 Employee 的详细信息
foreach (Employee person in staff)
DisplayPersonDetails(person); } public static void PerformBonusCalculation(Employee person)
{ // 此方法使用存储在 person 对象中的委托
// 来进行计算。
// 注意: 此方法能够识别乘数局部变量,尽管
// 该变量在此方法的范围之外。
//该乘数变量是一个“捕获的外部变量”。
person.bonus = person.calculation_algorithm(person.sales);
} public static void DisplayPersonDetails(Employee person)
{
Console.WriteLine(person.name);
Console.WriteLine(person.bonus);
Console.WriteLine("---------------");
}
}
}
1.B.2,
1.C,下载地址返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

ylbtech-Unitity-CS:AnonymousDelegates的更多相关文章

  1. ylbtech-LanguageSamples-AnonymousDelegates(匿名委托)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-AnonymousDelegates(匿名委托) 1.A,示例(Sample) 返回顶部 ...

  2. Class:DbConnectionManipulator.cs

    ylbtech-Class:DbConnectionManipulator.cs 1.返回顶部 1.DbConnectionManipulator.cs using System; using Sys ...

  3. ASP.NET MVC:UrlHelper.cs

    ylbtech-funcation-Utility: ASP.NET MVC:UrlHelper.cs 充当表示 ASP.NET Razor 页的类的基类. 1.UrlHelper 类返回顶部 1-1 ...

  4. ASP.NET MVC:WebPageBase.cs

    ylbtech-funcation-Utility: ASP.NET MVC:WebPageBase.cs 充当表示 ASP.NET Razor 页的类的基类. 1.A,WebPageBase 抽象类 ...

  5. ASP.NET MVC:WebPageRenderingBase.cs

    ylbtech-funcation-Utility: ASP.NET MVC:WebPageRenderingBase.cs 提供用于呈现使用 Razor 视图引擎的页的方法和属性. 1.A,WebP ...

  6. ASP.NET MVC:WebViewPage.cs

    ylbtech-funcation-Utility: ASP.NET MVC:WebViewPage.cs 表示呈现使用 ASP.NET Razor 语法的视图所需的属性和方法. 1.A,WebVie ...

  7. Unitity 常用工具类

    ylbtech-Unitity_C#: Unitity 常用代码 1.A,效果图返回顶部   1.B,源代码返回顶部 1,日期字符串 using System; using System.Xml; / ...

  8. Class-SP:Order.cs

    ylbtech-Class-SP:Order.cs 1. 返回顶部 1.GoodsType.cs 货品类别 using System; using System.Collections.Generic ...

  9. System.Net.FtpWebRequest.cs

    ylbtech-System.Net.FtpWebRequest.cs 实现文件传输协议(FTP)客户端. 1.返回顶部 1. #region 程序集 System, Version=4.0.0.0, ...

随机推荐

  1. Linux驱动设计—— 中断与时钟

    中断和时钟技术可以提升驱动程序的效率 中断 中断在Linux中的实现 通常情况下,一个驱动程序只需要申请中断,并添加中断处理函数就可以了,中断的到达和中断函数的调用都是内核实现框架完成的.所以程序员只 ...

  2. Linux驱动设计—— 内核模块(一)

    Linux内核理论基础 组成Linux内核的5个子系统:进程调度(SCHED)/内存管理(MM)/虚拟文件系统(VFS)/网络接口(NET)/进程间通信(IPC). 进程调度(SCHED) 在设备驱动 ...

  3. Java——关于String(字符串)

     String s = "abc";//创建一个字符串对象在常量池中. String s2 = new String("abc");//创建两个对象   一 ...

  4. python3基础语法

    一.编码 默认情况下, python3源码文件以UTF-8编码,所有字符串都是unicode字符串.当然你也可以为源码文件指定不同的编码: # -*- coding: gbk -*- 二.标识符 1. ...

  5. acess the C\c++ from the Java

    https://en.wikipedia.org/wiki/Java_Native_Interface http://docs.oracle.com/javase/7/docs/technotes/g ...

  6. Java 性能优化

    http://eclipsesource.com/blogs/2013/01/21/10-tips-for-using-the-eclipse-memory-analyzer/ http://docs ...

  7. 对象属性操作-包含kvc---ios

    #import <Foundation/Foundation.h> @class Author; @interface Books : NSObject{ @private NSStrin ...

  8. Python Queue实现生产与消费

    Python Queue模块详解 from:https://blog.linuxeye.com/334.html Python中,队列是线程间最常用的交换数据的形式.Queue模块是提供队列操作的模块 ...

  9. OpenJudge计算概论-完美立方【暂时就想到了枚举法了】

    /*===================================== 完美立方 总时间限制: 1000ms 内存限制: 65536kB 描述 a的立方 = b的立方 + c的立方 + d的立 ...

  10. 【转】 Ucenter同步登录原理解析

    应用中调用函数us_user_synlogin并输出 echo uc_user_synlogin($uid); 解析: 1. 该函数位于client.PHP中 2. 作用实质上是调用ucenter u ...