委托_deleget
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的更多相关文章
- HTML 事件(三) 事件流与事件委托
本篇主要介绍HTML DOM中的事件流和事件委托. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4 ...
- C#基础篇 - 理解委托和事件
1.委托 委托类似于C++中的函数指针(一个指向内存位置的指针).委托是C#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针.简单理解,委托是一种可以把函数当做参数传递的类型.很多情况下,某 ...
- [.NET] C# 知识回顾 - 委托 delegate (续)
C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...
- [C#] C# 知识回顾 - 委托 delegate
C# 知识回顾 - 委托 delegate [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6031892.html 目录 What's 委托 委托的属性 ...
- 9、委托、事件、Lambda
开始 关于委托,肯定是要有问题的. 第一个问题,委托用来干什么? 看.net中的表述:在.net平台下,委托类型用来定义和相应应用程序中的回调.(回调?处理内存中两个实体双向通信的一种技术.) 第 ...
- iOS 委托与文本输入(内容根据iOS编程编写)
文本框(UITextField) 本章节继续编辑 JXHypnoNerd .文件地址 . 首先我们继续编辑 JXHypnosisViewController.m 修改 loadView 方法,向 ...
- C#委托异步调用
参考页面: http://www.yuanjiaocheng.net/webapi/mvc-consume-webapi-get.html http://www.yuanjiaocheng.net/w ...
- JavaScript事件代理和委托(Delegation)
JavaScript事件代理 首先介绍一下JavaScript的事件代理.事件代理在JS世界中一个非常有用也很有趣的功能.当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委 ...
- .NET面试题系列[7] - 委托与事件
委托和事件 委托在C#中具有无比重要的地位. C#中的委托可以说俯拾即是,从LINQ中的lambda表达式到(包括但不限于)winform,wpf中的各种事件都有着委托的身影.C#中如果没有了事件,那 ...
随机推荐
- [转]sourceforge文件下载过慢
sourceforge文件下载过慢,可以用下面网址镜像下载, 通过 下载Sourceforge等国内无法下载站点文件的另一种方法博文,好像主站点是 https://www.mirrorservice. ...
- 修改Ubuntu16.04默认主题标题栏的颜色
默认主题为Ambiance: sudo gedit /usr/share/themes/Ambiance/gtk-3.0/gtk-main.css 将: @define-color dark_bg_c ...
- sed 一 文本处理工具
简介 sed 采用的是流编辑模式: 最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据. sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行 ...
- C++ 短信验证码/通知 - 代码示例
//接口类型:互亿无线触发短信接口,支持发送验证码短信.订单通知短信等. // ///////////////////账户注册:请通过该地址开通账户http://user.ihuyi.com/regi ...
- Dart编程运算符
表达式是一种特殊类型的语句,它计算为一个值.每个表达都由 操作数 - 表示数据 运算符 - 定义如何处理操作数以生成值. 考虑以下表达式 2 + 3.在该表达式中,2和3是操作数,符号+(加号)是 运 ...
- delphi 特殊窗体
delphi 窗体阴影 放窗体创建事件里面 SetClassLong(Handle, GCL_STYLE, GetClassLong(Handle, GCL_STYLE) or CS_DROPSHAD ...
- NX二次开发-UFUN编辑图层类别名字UF_LAYER_edit_category_name
NX11+VS2013 #include <uf.h> #include <uf_layer.h> UF_initialize(); //创建图层类别 UF_LAYER_cat ...
- LightOJ-1282-Leading and Trailing-快速幂+数学
You are given two integers: n and k, your task is to find the most significant three digits, and lea ...
- python爬虫_从零开始破解js加密(一)
除了一些类似字体反爬之类的奇淫技巧,js加密应该是反爬相当常见的一部分了,这也是一个分水岭,我能解决基本js加密的才能算入阶. 最近正好遇到一个比较简单的js,跟大家分享一下迅雷网盘搜索_838888 ...
- 9.ActiveMQ理论
一.首先说下什么是消息队列? 1.消息队列是在消息的传输过程中保存消息的容器. 二.为什么要用到消息队列? 主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的inse ...