C#匿名委托和Java匿名局部内部类使用方法示例

 更新时间:2013年11月25日 10:03:59   作者:  
Java在嵌套类型这里提供的特性比较多,假设:Java的字节码只支持静态嵌套类,内部类、局部内部类和匿名局部内部类都是编译器提供的语法糖,这个假设目前没法验证(看不懂字节码),本文先来看一下C#是如何为我们提供的这种语法糖

测试代码

复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpStudy
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 0;

            Action action1 = () =>
            {
                System.Console.WriteLine(i);
            };

            i++;

            Action action2 = () =>
            {
                System.Console.WriteLine(i);
            };

            i++;

            action1();
            action2();
        }
    }
}



复制代码 代码如下:

private static void Main(string[] args)
{
    <>c__DisplayClass2 CS$<>8__locals3 = new <>c__DisplayClass2();
    CS$<>8__locals3.i = 0;
    Action action1 = new Action(CS$<>8__locals3.<Main>b__0);
    CS$<>8__locals3.i++;
    Action action2 = new Action(CS$<>8__locals3.<Main>b__1);
    CS$<>8__locals3.i++;
    action1();
    action2();
}

复制代码 代码如下:

public void <Main>b__0()
{
    Console.WriteLine(this.i);
}

public void <Main>b__1()
{
    Console.WriteLine(this.i);
}

相关文章

  • C#中TaskFactory实现

    C#中TaskFactory实现

    在C#中,TaskFactory是一个用于创建异步任务的类,本文主要介绍了C#中TaskFactory实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • C# 进行图片压缩的示例代码(对jpg压缩效果最好)

    C# 进行图片压缩的示例代码(对jpg压缩效果最好)

    这篇文章主要介绍了C# 进行图片压缩的示例代码,帮助大家更好的利用c# 处理图片,提高办公效率,感兴趣的朋友可以了解下
    2020-11-11
  • C#中缓存System.Web.Caching用法总结

    C#中缓存System.Web.Caching用法总结

    本文详细讲解了C#中缓存System.Web.Caching的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#在Unity游戏开发中进行多线程编程的方法

    C#在Unity游戏开发中进行多线程编程的方法

    这篇文章主要介绍了C#在Unity游戏开发中进行多线程编程的方法,文中总结了Unity中使用多线程的几种方式以及一款多线程插件的介绍,需要的朋友可以参考下
    2016-04-04
  • C#实现钟表程序设计

    C#实现钟表程序设计

    这篇文章主要为大家详细介绍了C#实现钟表程序设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C#使用Effects给图片增加阴影效果

    C#使用Effects给图片增加阴影效果

    这篇文章介绍了C#使用Effects给图片增加阴影效果的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C# Winform使用log4net进行日志记录

    C# Winform使用log4net进行日志记录

    Log4Net是从Java的log4j移植过来的,功能也与log4j类似,可以把日志信息输出到文件、数据库等不同的介质或目标,下面我们就来学习一下如何使用log4net进行日志记录吧
    2023-11-11
  • C#中的队列Queue<T>与堆栈Stack<T>

    C#中的队列Queue<T>与堆栈Stack<T>

    这篇文章介绍了C#中的队列Queue<T>与堆栈Stack<T>,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • c#中如何获取指定字符前的字符串

    c#中如何获取指定字符前的字符串

    这篇文章主要介绍了c#中如何获取指定字符前的字符串问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • c#中判断字符串是不是数字或字母的方法

    c#中判断字符串是不是数字或字母的方法

    这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下
    2013-06-06

最新评论