ylbtech-Unitity-CS:AnonymousDelegates
| ylbtech-Unitity-CS:AnonymousDelegates |
| 1.A,效果图返回顶部 |
| 1.B,源代码返回顶部 |
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.C,下载地址返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
ylbtech-Unitity-CS:AnonymousDelegates的更多相关文章
- ylbtech-LanguageSamples-AnonymousDelegates(匿名委托)
ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-AnonymousDelegates(匿名委托) 1.A,示例(Sample) 返回顶部 ...
- Class:DbConnectionManipulator.cs
ylbtech-Class:DbConnectionManipulator.cs 1.返回顶部 1.DbConnectionManipulator.cs using System; using Sys ...
- ASP.NET MVC:UrlHelper.cs
ylbtech-funcation-Utility: ASP.NET MVC:UrlHelper.cs 充当表示 ASP.NET Razor 页的类的基类. 1.UrlHelper 类返回顶部 1-1 ...
- ASP.NET MVC:WebPageBase.cs
ylbtech-funcation-Utility: ASP.NET MVC:WebPageBase.cs 充当表示 ASP.NET Razor 页的类的基类. 1.A,WebPageBase 抽象类 ...
- ASP.NET MVC:WebPageRenderingBase.cs
ylbtech-funcation-Utility: ASP.NET MVC:WebPageRenderingBase.cs 提供用于呈现使用 Razor 视图引擎的页的方法和属性. 1.A,WebP ...
- ASP.NET MVC:WebViewPage.cs
ylbtech-funcation-Utility: ASP.NET MVC:WebViewPage.cs 表示呈现使用 ASP.NET Razor 语法的视图所需的属性和方法. 1.A,WebVie ...
- Unitity 常用工具类
ylbtech-Unitity_C#: Unitity 常用代码 1.A,效果图返回顶部 1.B,源代码返回顶部 1,日期字符串 using System; using System.Xml; / ...
- Class-SP:Order.cs
ylbtech-Class-SP:Order.cs 1. 返回顶部 1.GoodsType.cs 货品类别 using System; using System.Collections.Generic ...
- System.Net.FtpWebRequest.cs
ylbtech-System.Net.FtpWebRequest.cs 实现文件传输协议(FTP)客户端. 1.返回顶部 1. #region 程序集 System, Version=4.0.0.0, ...
随机推荐
- 【python2.7】raw_input()和input()区别及用法
版权声明:本文为博主原创文章,未经博主允许不得转载. 一.函数介绍1. input([prompt]) 等同于eval(raw_input([prompt])),这个函数不会捕捉用户输入上的错误,如果 ...
- how to change the AlexNet into FCNs ?
How to change the AlexNet into FCNs ? FCNs is a network that only contain convolution layers and no ...
- javascript面向对象规则汇总以及json
javascript中一切皆对象,而且定义非常灵活, 于是出现了一些相对其他编程语言环境下匪夷所思的代码: ---------------------------------------------- ...
- Python-requests之POST Data的json问题
代码如下: import json import requests r = requests.post(url, data = {"a": json.dumps({"b& ...
- Unity3D研究院编辑器之脚本设置ToolBar
Unity版本5.3.2 如下图所示,ToolBar就是Unity顶部的那一横条.这里的所有按钮一般情况下都得我们手动的用鼠标去点击.这篇文章我们说说如果自动操作它们 1.自动点击左边四个按钮 (拖动 ...
- 015. asp.net实现简易聊天室
通过Application和Session来实现简单的聊天室和在线用户数统计 Global.asax代码: <%@ Application Language="C#" %&g ...
- openssh
http://www.openssh.com/ OpenSSH is a FREE version of the SSH connectivity tools that technical users ...
- noip2011普及组——统计单词数
统计单词数 时间限制:1 s 内存限制:128MB [问题描述]一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数.现在,请你编程实 ...
- dwr使用步骤
DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在 ...
- Android: 在 TextView 里使用删除线
Android: 在 TextView 里使用删除线 分类: Android2014-09-25 13:17 3431人阅读 评论(0) 收藏 举报 以编程的方式添给 TextView 添加删除线: ...
