委托声明----委托实例化-----委托调用
1、委托声明。2、委托实例化。3、委托调用。
一、定义委托
定义委托的语法如下:
<访问修饰符> delegate 返回类型 委托名();
定义委托和定义方法很相似,委托没有具体的实现体,由关键字delegate声明,直接以分号结束。委托能够代表什么样的方法,由它的返回值类型和参数列表决定。如下定义如下委托:
public delegate void MyDelegate(string name);
那么使用MyDelegate委托代表的只可以是没有返回值,参数为一个字符串的方法。
二、实例化委托
定义了委托之后,如何使用委托代表方法执行呢?首先要实例化委托。实例化委托就是将其指向某个方法,即调用委托的构造函数,并将相关联的方法作为参数传递。
如:如一个方法
private int Add(int num1,int num2)
{
return(num1+num2);
}
委托声明了以后,就可以象类一样进行实例化,实例化时把要引用的方法(如:Add)做为参数,这样委托和方法就关联了起来,就可以用委托来引用方法了。
委托和所引用的方法必须保持一致:
1、参数个数、类型、顺序必须完全一致。
2、返回值必须一致。
3、传入的方法中不能带参数,只写方法名。
三、调用委托
要调用委托的方法用委托的对象加参数,如果参数为空,也要加小括号。
为方法创建一个委托,然后立即通过这个委托调用该方法并没有太大意义,因为直接调用方法更简单。动态调用方法时,委托才真正显示出它的效用。
using System;
delegate int Operand(int a, int b); //第一步:委托声明
class Class1
{
static void Main(string[]args)
{
Class1 c1 = new Class1();
Operand ope = new Operand(c1.Add);
//委托实例化,注意参数是要使用的参数名,且不带括号
Console.WriteLine(ope(10, 20)); //委托调用,调用委托的方法用
委托的对象加参数
Console.ReadLine();
}
//定义一个方法,求两个加数的和
private int Add(int num1, int num2)
{
return (num1 + num2);
}
}
转载于:https://www.cnblogs.com/qintianqi/archive/2011/04/04/2005316.html
委托声明----委托实例化-----委托调用相关推荐
- C# 委托 (一)—— 委托、 泛型委托与Lambda表达式
C# 委托 (一)-- 委托. 泛型委托与Lambda表达式 2018年08月19日 20:46:47 wnvalentin 阅读数 2992 版权声明:此文乃博主之原创.鄙人才疏,望大侠斧正.此文可 ...
- C#使用委托实现在Form2中调用Form1中的控件
定义一个委托,在Form1中使用该委托声明一个静态委托变量,然后将Form1中某个使用控件的方法赋予给这个委托变量(建议最好是在Form1的构造函数中或者Form1加载事件中给该委托变量赋值,至少在F ...
- 第一节:复习委托,并且通过委托的异步调用开启一个新线程和异步回调、异步等待。
一. 再谈委托 1. 委托是一个关键字为delegate的自定义类型,通过委托可以把方法以参数的形式传递给另外一个方法,实现插件式的开发模式: 同时调用委托的时候,委托所包含的所有方法都会被实现. 2 ...
- 第一节:复习委托,并且通过委托的异步调用开启一个新线程和异步回调、异步等待
一. 再谈委托 1. 委托是一个关键字为delegate的自定义类型,通过委托可以把方法以参数的形式传递给另外一个方法,实现插件式的开发模式: 同时调用委托的时候,委托所包含的所有方法都会被实现. 2 ...
- 委托、lamda表达式..委托概念-匿名函数-泛型委托-Lamda表达式-多播委托
委托 一.什么是委托? 将一个方法作为参数传递给另一个方法(参数类型为委托delegate). 声明一个委托类型. 委托所指向的函数必须跟委托具有相同的的签名(参数个数.参数类型.返回值一样). ...
- 第九节:委托和事件(1)(委托的发展历史、插件式编程、多播委托)
一. 委托的发展历史和基本用法 说起委托,每个人可能都会对他有不同的理解,结合实战中委托的使用,我对其理解是:委托和类一样,是用户的一个自定义类型,委托可以有参数.有返回值,委托的关键字是delega ...
- 七天学习计划_c#_[2][3][4][5]委托、事件、委托与事件的区别、泛型委托、Func\Action\predicate
由于委托之前的博客已经详细写了,这里就简单的过一遍,复习一下: 了解委托 基于委托开发事件驱动程序变得非常简单. 使用委托可以大大简化多线程编程难度. 理解委托 委托也可以看做成一种数据类型,可以定义 ...
- 什么是委托,如何实现委托
Step 1.为什么用委托 其实很简单,当我们需要把方法传递给方法时,在C#中我们就需要使用委托. 委托类似于 C++ 函数指针,但它是托管的,类型安全的. Step 2.怎么声明委托 委托的语法很简 ...
- C#委托之如何理解委托面试常见题:
面试常见题: 1.委托是什么?★☆ 2.为什么需要委托?★☆ 3.委托能用来做什么?★☆ 4.如何自定义委托★☆ 5-NET默认的委托类型有哪几种?★☆ 6.怎样使用委托?★★★ 7.多播委托是什么? ...
最新文章
- VMware Tools手动下载
- Java面试题汇总及答案2021最新(序列化含答案)
- 二叉树的先序/中序/后序(递归、非递归)+层序遍历
- maven 多项目搭建
- vue服务端转html,普通vue-cli初始项目转为服务端渲染SSR
- 动态改变标题_小米相册更新,新增动态换天/赛博朋克/MIUI12界面等等!
- 如何解决海量数据的处理问题
- 深度学习 3. MatConvNet (CNN)的介绍和下载以及CPU和GPU的安装配置,Matlab2016
- VS201x提示无法查找或打开 PDB 文件
- RFID工作频率分类
- python安装apk到手机_安卓手机怎么安装APK文件
- wechat微信小程序 :对应的服务器证书无效
- msf(美少妇)练习
- c++中多个线程使用同一个函数
- java se1.6配套Jdk,javase 1.6与jdk1.6
- win10系统sqlserver2000数据库问题
- day09-商品规格管理
- Kafka 入门教程(超详细)
- 基于Delphi7openGauss2.0开发社区信息管理系统-设计文档
- JJJ:Makefile 添加
热门文章
- python numpy array转置_详解Numpy数组转置的三种方法T、transpose、swapaxes
- Verilg 2001相对于Verilog 1995的改进(Z) (内含 乘方 运算符** )
- nginx的日志配置
- 人工智能已经迫在眉睫_创意计算机已经迫在眉睫
- sql 12天内的数据_想要在12周内成为数据科学家吗?
- R金融统计:收益、随机行走和模拟
- 特斯拉超级充电桩亮相:充电5分钟能跑百公里
- PHP(三)——PHP基础知识
- PHP会话管理——Session和Cookie
- 为什么很多大老板银行贷款几千万,看起来还那么潇洒?