using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication4
{
public static class InvokeExt
{ //扩展方法进行装箱输出继承IEnumerable<T>的内容项
public static void ShowItems<T>(this IEnumerable<T> collection)
{
foreach (var item in collection)
{
Console.WriteLine(item); }
} //Action<Object>的尖括号里有一个Object说明有一个输入参数 public static void InvokeAndCatch<TException>(this Action<Object> d, Object o) where TException:Exception
{
try
{ //在调用这个扩展方法的时候已在Main方法中为这个action委托赋值过了,而在Main方法中已经定义了这个委托的行为是o=>console.writeline(o.gettype());有一个输入参数,委托的行为是在控制台打印这个输入参数的类型
//下面的语句相当于o=>Console.WriteLine(null.GetType());引发了空引用异常 d(o);
}
catch (Exception)
{ ;
}
}
} class Program
{
static void Main(string[] args)
{ //action委托定义了方法的行为(这里是告诉编译器这里的动作是传入一个参数,并在控制台上输出这个参数的类型)
Action<Object> action = o => Console.WriteLine(o.GetType()); // 这是为action<object>委托定义的一个扩展方法,这里的传入参数是一个null action.InvokeAndCatch<NullReferenceException>(null);
Action a = "Jeff".ShowItems;
a();
Console.ReadKey();
}
}
}

复习action委托的更多相关文章

  1. C#中常见的委托(Func委托、Action委托、Predicate委托)

    今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate委托以及这三种委托的常见使用场景. Func,Action,Predicate全面解析 首先来说明Func委托,通 ...

  2. Func 委托 和 Action 委托 初步谈论

    继上篇EventHandler之后,继续填坑,简单了解下Func<TResult> 委托 和 Action 委托. msdn对于两者的解释: Func<TResult>:封装一 ...

  3. 随手复习一下委托:delegate

    先骂个街,天儿太闷了…… 随手复习一下委托,delegate 是一种函数指针,是 .net 提供的一种安全的函数指针,翻译的也很贴切,像是委托人,又像代理人,通过“委托”来执行一些函数而不是直接调用它 ...

  4. func 和action 委托的使用

    func 可以带返回值,action  不带返回值 平时我们如果要用到委托一般都是先声明一个委托类型,比如: private delegate string Say(); string说明适用于这个委 ...

  5. Func和Action委托简单用法

    Func和Action类是特殊的类型,它们允许你在不必指定自定义委托类型的情况下,去使用委托.在整个.NET框架中都可以使用它们.例如,在我们考察并行计算时,你也会看到这两个类的示例. 上面一段文字是 ...

  6. 委托、Lambda表达式、事件系列05,Action委托与闭包

    来看使用Action委托的一个实例: static void Main(string[] args) { int i = 0; Action a = () => i++; a(); a(); C ...

  7. C#内置泛型委托:Action委托

    1.什么是Action泛型委托 Action<T>是.NET Framework内置的泛型委托,可以使用Action<T>委托以参数形式传递方法,而不用显示声明自定义的委托.封 ...

  8. [C#学习笔记]Func委托与Action委托

    学习一项新知识的时候,最好的方法就是去实践它. 前言 <CLR via C#>这本神书真的是太有意思了!好的我的前言就是这个. Fun 如果要用有输入参数,有返回值的委托,那么Func委托 ...

  9. 关于.net4.0中的Action委托

    在使用委托时,若封装的方法无返回值,并且参数在0-7个,可考虑使用.Net4.0中的Action委托,建议使用系统自带的,减少自定义 public delegate void Action<in ...

随机推荐

  1. 【转】C# Socket编程(2)识别网络主机

    [转自:https://www.cnblogs.com/IPrograming/archive/2012/10/11/CSharp_Socket_2.html] 一个客户端想要发起一次通信,先决条件就 ...

  2. Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...

  3. jquery选择器 之 获取父级元素,子元素,同级元素

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link href ...

  4. RMAN 增量备份 脚本

    ################################################################## ##    rman_backup.sh              ...

  5. bzoj 2946 [Poi2000]公共串——后缀自动机

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2946 对每个串都建一个后缀自动机,然后 dfs 其中一个自动机,记录同步的话在别的自动机上走 ...

  6. 64位windows下mysql安装

    登入mysql官网https://www.mysql.com/downloads/,点击Community,选择MySQL on Windows,选择MySQL Installer,选择MySQL S ...

  7. ubuntu crontab 不执行的解决方法

    在脚本文件的第二行添加下面一句即可 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 下面是分析解决问题的步骤: 1. ...

  8. Java-Maven-Runoob:Maven Eclipse

    ylbtech-Java-Maven-Runoob:Maven Eclipse 1.返回顶部 1. Maven Eclipse Eclipse 提供了一个很好的插件 m2eclipse ,该插件能将 ...

  9. PHP统计排行,分页

    1.分页参数 count 总数 firstRow   起始行 listRows   每一次获取记录数 list          每一页的记录(要与count对应一致就行) 2.分页对象 可以针对真实 ...

  10. 解决sever 2008中tomcat的报错 init Failed to initialize end point associated with ProtocolHandler ["http-nio-80"]

    错误现象: 01-Aug-2017 14:59:50.140 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing Protoc ...