using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; /* //由框架提供的委托类型
//无返的
Action act0 = () => Console.WriteLine("无参无返");
Action<int> act1 = x => Console.WriteLine("1 参无返");
Action<int, int> act2 = (x, y) => Console.WriteLine("2 参无返");
//有返的
Func<string> func0 = () => "无参有返";
Func<int, string> func1 = x => "1 参有返";
Func<int, double, string> func2 = (x, y) => "多参有返"; */ namespace 委托_deleget
{ // 1、声明委托
//就声明方法模版加 deleget 修饰
//就是把方法转义成类,同时指定这个类的使用规则,如 返、参的类型或数量 public delegate void nRnC();
public delegate int hRnC();
delegate string hRhC(string a, int b); class Program
{
// 2、定义供委托调用的方法
private static void for_nRnC_1() { Console.WriteLine("for_nRnC_1"); }
private static void for_nRnC_2() { Console.WriteLine("for_nRnC_2"); }
private static string for_hRhC(string a, int v)
{
string temp = null;
for (int i = 0; i < v; i++)
{
temp += a;
}
return temp;
} static void Main(string[] args)
{
// 3、实例化委托对象,它包括一个调用方法列表 //无参无返
nRnC myDeleget_nRnC = new nRnC(for_nRnC_1);
//有参有返,
hRhC myDeleget_hRhC = new hRhC(for_hRhC); // 4、使用(执行)委托 // nRnC
myDeleget_nRnC.Invoke(); //hRhC
string ret = myDeleget_hRhC("batu", 5);
Console.WriteLine(ret); //多波委托,返回值为最后一个方法的返回值
myDeleget_nRnC += for_nRnC_2;
myDeleget_nRnC -= for_nRnC_2; Console.Read();
}
} //事件_Event class EventTest
{
void doSomeThing()
{
ForEvent myTest = new ForEvent();
myTest.shijian += MyTest_shijian;
//myTest.shijian = MyTest_shijian;
//myTest.shijian();
myTest.weituo = MyTest_shijian;
myTest.weituo();
} private void MyTest_shijian() {; ; ; }
} class ForEvent
{
//这是一个属性,可以直接赋值和执行
//相当于把类内部的方法直接暴露出来
public nRnC weituo { set; get; } //这是一个事件,只能 += 或 -= 且不能从外部调用
//Event 的用作是,控制对象的权限,
//在外部只能向这个事件上挂方法或删方法,不能执行,也不能改变原有方法
public event nRnC shijian;
}
}

  

委托_deleget的更多相关文章

  1. HTML 事件(三) 事件流与事件委托

    本篇主要介绍HTML DOM中的事件流和事件委托. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4 ...

  2. C#基础篇 - 理解委托和事件

    1.委托 委托类似于C++中的函数指针(一个指向内存位置的指针).委托是C#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针.简单理解,委托是一种可以把函数当做参数传递的类型.很多情况下,某 ...

  3. [.NET] C# 知识回顾 - 委托 delegate (续)

    C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...

  4. [C#] C# 知识回顾 - 委托 delegate

    C# 知识回顾 - 委托 delegate [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6031892.html 目录 What's 委托 委托的属性 ...

  5. 9、委托、事件、Lambda

    开始 关于委托,肯定是要有问题的. 第一个问题,委托用来干什么? 看.net中的表述:在.net平台下,委托类型用来定义和相应应用程序中的回调.(回调?处理内存中两个实体双向通信的一种技术.)   第 ...

  6. iOS 委托与文本输入(内容根据iOS编程编写)

    文本框(UITextField) 本章节继续编辑 JXHypnoNerd .文件地址 . 首先我们继续编辑  JXHypnosisViewController.m 修改  loadView 方法,向  ...

  7. C#委托异步调用

    参考页面: http://www.yuanjiaocheng.net/webapi/mvc-consume-webapi-get.html http://www.yuanjiaocheng.net/w ...

  8. JavaScript事件代理和委托(Delegation)

    JavaScript事件代理 首先介绍一下JavaScript的事件代理.事件代理在JS世界中一个非常有用也很有趣的功能.当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委 ...

  9. .NET面试题系列[7] - 委托与事件

    委托和事件 委托在C#中具有无比重要的地位. C#中的委托可以说俯拾即是,从LINQ中的lambda表达式到(包括但不限于)winform,wpf中的各种事件都有着委托的身影.C#中如果没有了事件,那 ...

随机推荐

  1. sqlmap结合burpsuite对post请求进行注入测试

    1. 浏览器打开目标地址 http://testasp.vulnweb.com/Login.asp 2. 配置burp代理(127.0.0.1:8080)以拦截请求 3. 点击login表单的subm ...

  2. Struts功能详解——ValidatorForm

    ActionForm和ValidatorForm区别:       一个Form继承了ValidatorForm 就不用写具体的验证,但是需要提供:validation-rules.xml 和 val ...

  3. BZOJ 4596: [Shoi2016]黑暗前的幻想乡(容斥+Matrix_Tree)

    传送门 解题思路 看到计数想容斥--\(from\) \(shadowice1984\)大爷.首先求出原图的生成树个数比较容易,直接上矩阵树定理,但这样会多算一点东西,会把\(n-2\)个公司的多算进 ...

  4. Feign连接超时 Read timed out

    在远程调用的过程中由于连接超时,导致无法成功请求数据,下面是报错 项目中用的是spring-cloud-starter-openfeign 2.2.0版本 找到对应的文档,开始查阅资料 文档首页就找到 ...

  5. MFC进度条

    一.成员函数简介 1.create()针对不是通过资源文件上拖拉进度条控件生成的进度条,需要用此函数创建一个. 2.SetRange()设置进度条的起始值和终止值. 3.SetPos()设置进度条的当 ...

  6. python从入门到大神---Python的jieba模块简介

    python从入门到大神---Python的jieba模块简介 一.总结 一句话总结: jieba包是分词技术,也就是将一句话分成多个词,有多种分词模型可选 1.分词模块包一般有哪些分词模式(比如py ...

  7. C++之运算符重载(一元)

    一.-符号重载 1.成员函数重载负号 2.友元函数重载负号 3.补充说明 <1> <一元运算符编码实现(一)>课程笔记: A:事实上,我们的重载运算符返回void.返回对象本身 ...

  8. opencv-图像形态学之开运算、闭运算、形态学梯度、顶帽、黑帽合辑

    转自:https://blog.csdn.net/poem_qianmo/article/details/24599073 1.1 开运算(Opening Operation) 开运算(Opening ...

  9. POJ 4718 /// 树链剖分+线段树区间合并 求树上两点间的LCIS长度

    题目大意: 给定n个点 每个点都有权值 接下来给定树的n条边 第 i 个数 a[i] 表示 i+1到a[i]之间 有一条边 给定q q个询问 每次询问给出 x y 求x到y的最长上升子序列的长度 题解 ...

  10. POJ 3525 /// 半平面交 模板

    题目大意: 给定n,接下来n行逆时针给定小岛的n个顶点 输出岛内离海最远的点与海的距离 半平面交模板题 将整个小岛视为由许多半平面围成 那么以相同的比例缩小这些半平面 一直到缩小到一个点时 那个点就是 ...