zoukankan      html  css  js  c++  java
  • Delegate类型和lambda表达式、匿名函数之间的转化

    private void ThreadToMainExeption()
      {
       Thread t = new Thread(() =>
       {
        try
        {
         Console.WriteLine("work thread");
        }
        catch (Exception e)
        {
         this.Invoke((Action)delegate
         {
          throw e;
         });

         //无法将lambda表达式转为delegate类型。
         //this.Invoke(() =>
         //{

         //});

         //无法将匿名方法转为委托类型。
         //this.Invoke(delegate
         //{
         //    throw e;
         //});

         //该段代码可以通过,真矫情。
         //Func<string, string> anonDel = delegate(string param)
         //{
         //    param += "ddd";
         //    return param;
         //};
         //this.Invoke(anonDel);
        }
       });

    Action是委托实例,而匿名方法只是一个方法,不是对象。但是可以通过类型转化转为对象。

    clr会为它声明个匿名类。

  • 相关阅读:
    Wamp 扩展Oracle Oci
    Yii 网站上线不需手动配置
    Centos 设置时区
    Crontab 入门
    centos apache安装oracle扩展
    Centos rpm 卸载
    mac vagrant 虚拟机nfs挂载点
    搭建php虚拟环境
    Mac 安装package control
    Sublime 安装、删除插件
  • 原文地址:https://www.cnblogs.com/363546828/p/2419140.html
Copyright © 2011-2022 走看看