[C#]delegate基础入门
参考代码1:
using System; namespace DelegateDemo
{
class Program
{
public delegate void Expresser();
static void Main(string[] args)
{
//委托, delegate
Test t = new Test();
Expresser exp1 = new Expresser(t.MyExpressApple);
Expresser exp2 = new Expresser(t.MyExpressMail);
Expresser exp3 = exp2;
exp1();
exp3();
/////////////////////////////////////
Expresser exp11 = new Expresser(Test2.MyExpressBook);
Expresser exp22 = new Expresser(Test2.MyExpressPen);
exp11();
exp22();
}
}
class Test
{
public void MyExpressMail()
{
Console.WriteLine("寄送邮件");
}
public void MyExpressApple()
{
Console.WriteLine("寄送苹果");
}
}
class Test2
{
public static void MyExpressBook()
{
Console.WriteLine("寄送书籍");
}
public static void MyExpressPen()
{
Console.WriteLine("寄送笔");
}
} }
参考代码2:
using System; namespace ArithDemo
{
class Program
{
public delegate double ArithDelegater(int a,int b); static void Main(string[] args)
{
ArithDelegater[] a= new ArithDelegater[4];
a[0]= new ArithDelegater(Arith.Add);
a[1] = new ArithDelegater(Arith.Sub);
a[2] = new ArithDelegater(Arith.Mul);
a[3] = new ArithDelegater(Arith.Div); for(int i=0;i<4;i++)
{
Console.WriteLine(a[i](100,30));
} }
}
class Arith
{
public static double Add(int a,int b)
{
return a + b;
}
public static double Sub(int a, int b)
{
return a - b;
}
public static double Mul(int a, int b)
{
return a * b;
}
public static double Div(int a, int b)
{
return (double)a / b;
}
}
}
参考代码3:
using System; namespace ArithDemo
{
class Program
{
public delegate void ArithDelegater(int a, int b); static void Main(string[] args)
{
ArithDelegater a = new ArithDelegater(Arith.Add);
a+= new ArithDelegater(Arith.Sub);
a+= new ArithDelegater(Arith.Mul);
a+= new ArithDelegater(Arith.Div);
a(100, 30);
Console.WriteLine("--------------");
a.Invoke(1000, 300);
}
}
class Arith
{
public static void Add(int a, int b)
{
Console.WriteLine(a + b);
}
public static void Sub(int a, int b)
{
Console.WriteLine(a - b);
}
public static void Mul(int a, int b)
{
Console.WriteLine(a * b);
}
public static void Div(int a, int b)
{
Console.WriteLine((double)a / b);
}
}
}
[C#]delegate基础入门的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- 「译」JUnit 5 系列:基础入门
原文地址:http://blog.codefx.org/libraries/junit-5-basics/ 原文日期:25, Feb, 2016 译文首发:Linesh 的博客:JUnit 5 系列: ...
- .NET正则表达式基础入门
这是我第一次写的博客,个人觉得十分不容易.以前看别人写的博客文字十分流畅,到自己来写却发现十分困难,还是感谢那些为技术而奉献自己力量的人吧. 本教程编写之前,博主阅读了<正则指引>这本入门 ...
- 从零3D基础入门XNA 4.0(2)——模型和BasicEffect
[题外话] 上一篇文章介绍了3D开发基础与XNA开发程序的整体结构,以及使用Model类的Draw方法将模型绘制到屏幕上.本文接着上一篇文章继续,介绍XNA中模型的结构.BasicEffect的使用以 ...
- 从零3D基础入门XNA 4.0(1)——3D开发基础
[题外话] 最近要做一个3D动画演示的程序,由于比较熟悉C#语言,再加上XNA对模型的支持比较好,故选择了XNA平台.不过从网上找到很多XNA的入门文章,发现大都需要一些3D基础,而我之前并没有接触过 ...
- Shell编程菜鸟基础入门笔记
Shell编程基础入门 1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail: ...
- [Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.
前言: 在上一篇中: [Spring框架]Spring AOP基础入门总结一. 中 我们已经知道了一个Spring AOP程序是如何开发的, 在这里呢我们将基于AspectJ来进行AOP 的总结和学习 ...
- [Spring框架]Spring AOP基础入门总结一.
前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect ...
- RobotFramework - 基础入门
Robot Framework Wiki HomePage Robot Framework User Guide Robot Framework documentation Robot Framewo ...
- .NET ORM 的 “SOD蜜”--零基础入门篇
PDF.NET SOD框架不仅仅是一个ORM,但是它的ORM功能是独具特色的,我在博客中已经多次介绍,但都是原理性的,可能不少初学的朋友还是觉得复杂,其实,SOD的ORM是很简单的.下面我们就采用流行 ...
随机推荐
- Django Rest Frame work 如何使用serializers序列化函数新手教程
Django Rest Frame work 如何使用serializers序列化 Django Rest Framework提供了serializers模块,用于序列化和反序列化模型实例 ...
- matplotlib 中文乱码的解决方法
关于报错信息 Glyph 26426 missing from current font. 这个错误的原因是:本地没有可支持中文字体显示的配置文件,所以第一步需要先去下载相关的配置文件. 下载链接 h ...
- MSDTC突然停用了,后台数据无法更新
由于前台电脑停电突然关机,导致重启后发现MSDTC无法更新数据,重新添加了link,只能查询,更新失败,报错:无活动事务 1.修改host设置,在C:\Windows\System32\drivers ...
- 使用emplace_back的new initializer expression list treated as compound expression提示看聚合初始化和parameter pack
测试代码 使用emplace_back可以避免不必要的构造和拷贝,而是直接在向量的内存位置执行construct进行构造,代码看起来也更加简洁. 但是在使用的时候,会发现有一些和直观不太对应的情况.例 ...
- VMWare 12 Mac 10.11 XCode 7.3 Ipad真机调试重要问题总结
XCode 7.3可以不需要每年缴费而直接调试IOS应用,测试如下: 1,安装Mac 10.11在VMWare12上,网上有很多例子.注意: 1.1,虚拟机设置中USB为USB2.0,不能是3.0或其 ...
- curl从入门到精通教程
直接看英文版 https://catonmat.net/cookbooks/curl
- MFC中利用CFileDialog选择文件并读取文件所遇到的问题和解决方法
在用MFC编写一个上位机时,需要实现选择和读取一个二进制文件,本来以为很简单的但是在实现过程中遇到很多问题,所幸都一一解决,这里做一下记录. 首先在实现文件选择,在界面上设置一个按钮,并在点击事件函数 ...
- [OC] 统计代码行数
1.打开终端 2. cd 路径,或者 输入cd ,然后把要统计代码的工程拖入终端,就会出现工程的路径. 然后按下回车. 3.输入: find . -name "*.m" -or - ...
- 第三章:用python实现常用的用户分层模型(RFM模型)
文章目录 项目背景 读取数据 数据分析 分析 Recent 分析 Frequency 分析 Mount RFM模型 分位数分层 自定义分层 定义客户标签 数据可视化 结论 源码地址 本文可以学习到以下 ...
- 20211306 2021-2022-2 《Python程序设计》第二次实验报告
20211306 2021-2022-2 <Python程序设计>第二次实验报告 课程:<Python程序设计> 班级:2113 姓名:丁文博 学号:20211306 实验教师 ...