c# 委托delegate 编写计算器
.Net 中的委托类似于 C 或 C++ 中的函数指针。使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与 C 或 C++ 中的函数指针不同,委托是面向对象、类型安全的。
首先定义一个计算器类Calculator
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Calculator
{
class Calculator
{ static public decimal Sum(decimal a,decimal b)
{
return a + b;
}
static public decimal Sub(decimal a, decimal b)
{
return a - b;
}
static public decimal Mul(decimal a, decimal b)
{
return a * b;
}
static public decimal Div(decimal a, decimal b)
{
return a / b;
}
}
}
在Calculator中定义了加、减、乘、除四种方法
然后定义委托mycalculate
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Calculator
{
public delegate decimal mycalculate(decimal a, decimal b);
class Program
{
static void Main(string[] args)
{
//加法
mycalculate mysum = new mycalculate(Calculator.Sum);
Console.WriteLine(mysum(,));
//减法
mycalculate mysub = new mycalculate(Calculator.Sub);
Console.WriteLine(mysub(, ));
//乘法
mycalculate mymul = new mycalculate(Calculator.Mul);
Console.WriteLine(mymul(, ));
//除法
mycalculate mydiv = new mycalculate(Calculator.Div);
Console.WriteLine(mydiv(, ));
Console.ReadKey(); }
}
}
如果要进行加法运算,创建一个委托对象mysum,把计算器中的加法方法传递到该对象中,当执行该委托的时候会执行运算器中的加法函数
其他的运算操作同理
c# 委托delegate 编写计算器的更多相关文章
- [C#] C# 知识回顾 - 委托 delegate
C# 知识回顾 - 委托 delegate [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6031892.html 目录 What's 委托 委托的属性 ...
- C# 代理/委托 Delegate
本文转载自努力,努力,努力 1. 委托的定义:委托是函数的封装,它代表一"类"函数.他们都符合一定的签名:拥有相同的参数列表,返回值类型.同时,委托也可以看成是对函数的抽象,是函数 ...
- [.NET] C# 知识回顾 - 委托 delegate (续)
C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...
- C# 委托Delegate(一) 基础介绍&用法
本文是根据书本&网络 前人总结的. 1. 前言 定义&介绍: 委托Delegate是一个类,定义了方法的类型, 使得可以将方法当做另一个方法的参数来进行传递,这种将方法动态地赋给参数的 ...
- 为什么不能把委托(delegate)放在一个接口(interface)当中?
stackoverflow上有人问,为什么不能把委托放在一个接口当中? 投票最多的第一个答案第一句话说,“A Delegate is just another type, so you don't g ...
- 纯javascript代码编写计算器程序
今天来分享一下用纯javascript代码编写的一个计算器程序,很多行业都能用到这个程序,例如做装修预算.贷款利率等等. 首先来看一下完成后的效果: 具体代码如下:(关注我的博客,及时获取最新WEB前 ...
- c# 委托 delegate
委托是一种存储函数引用的类型,在事件和事件的处理时有重要的用途 通俗的说,委托是一个可以引用方法的类型,当创建一个委托,也就创建一个引用方法的变量,进而就可以调用那个方法,即委托可以调用它所指的方法. ...
- 理解委托(delegate)及为什么要使用委托
理解委托(delegate)及为什么要使用委托 委托:是一种定义方法签名的类型. 当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联. 您可以通过委托实例调用方法. 上述为官方说法,理解起来 ...
- 深入理解委托(Delegate)
前言 委托其实一直以来都感觉自己应该挺熟悉的,直到最近又去翻了翻 CLR via C#,感觉我之前的理解可能还有失偏颇.在这记录一下. 之前文章的链接: 接口和委托的泛型可变性 C#高级编程笔记 De ...
随机推荐
- [转]myeclipse 生成JAR包并引入第三方包
myeclipse 生成JAR包并引入第三方包 我用的是myeclipse8.0 首先用myeclipse生成JAR 一.生成JAR包 1.点选项目右键—>Export 2.Java—>J ...
- 打开Eclipse出现 parsesdkcontent failed 的解决办法
出现这个问题是由于系统曾安装过SDK和AVD,所以需要删除.android和相应的workspace文件夹,然后进入我的电脑->高级系统设置->环境变量,在系统变量里,更新ANDROID_ ...
- EF中执行原生sql与使用Local获取本地数据
使用DbSet的Local属性可以访问当前context中被追踪且没有被标记为删除的实体(内存中的数据) using (var context = new BloggingContext()) { / ...
- C#扩展方法的理解
“扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.” 这是msdn上说的,也就是你可以对String,Int,DataRow,DataTable等这些 ...
- javascript实现倒计时程序
最近在网上看到一道这样的面试题: 题: 网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态显示“××年还剩××天××时××分××秒”? 我实现了,发现挺有意思,下面把我的代码贴出来 ...
- AngularJs练习Demo6
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...
- FineUI控件之树的应用(二)
一.Tree控件应用 <f:PageManager ID="PageManager1" runat="server" /> <f:Tree I ...
- PHP MAIL DEMO(程序代码直接发送邮件)
php代码 <?php // 收件人邮箱地址 $to = 'xxxxxx@qq.com'; // 邮件主题 $title = '测试邮件发送'; // 邮件内容 $msg = '这是一封测试邮件 ...
- HDU 5904 - LCIS (BestCoder Round #87)
HDU 5904 - LCIS [ DP ] BestCoder Round #87 题意: 给定两个序列,求它们的最长公共递增子序列的长度, 并且这个子序列的值是连续的 分析: 状态转移方程式 ...
- 浅谈Hive vs HBase
Hive是什么? Apache Hive是一个构建于Hadoop(分布式系统基础架构)顶层的数据仓库,注意这里不是数据库.Hive可以看作是用户编程接口,它本身不存储和计算数据:它依赖于HDFS(H ...