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);
}

相关文章

  • asp.net core mvc权限控制:在视图中控制操作权限

    asp.net core mvc权限控制:在视图中控制操作权限

    本文主要介绍了asp.net core mvc权限控制:在视图中控制操作权限。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C#实现屏幕抓图并保存的示例代码

    C#实现屏幕抓图并保存的示例代码

    这篇文章主要为大家详细介绍了如何利用C#实现屏幕抓图并保存的功能,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-12-12
  • C#字符串如何提取数值(带小数点)

    C#字符串如何提取数值(带小数点)

    这篇文章主要介绍了C#字符串如何提取数值问题(带小数点),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 汉字转拼音缩写示例代码(Silverlight和.NET 将汉字转换成为拼音)

    汉字转拼音缩写示例代码(Silverlight和.NET 将汉字转换成为拼音)

    本篇文章主要介绍了汉字转拼音缩写示例代码(Silverlight和.NET 将汉字转换成为拼音) 需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • c# WPF中CheckBox样式的使用总结

    c# WPF中CheckBox样式的使用总结

    这篇文章主要介绍了c# WPF中CheckBox样式的使用总结,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • 总结的5个C#字符串操作方法分享

    总结的5个C#字符串操作方法分享

    这篇文章主要介绍了总结的5个C#字符串操作方法分享,本文讲解了把字符串按照分隔符转换成 List、把字符串转 按照, 分割 换为数据、得到数组列表以逗号分隔的字符串、得到字符串长度等方法,需要的朋友可以参考下
    2015-05-05
  • C#实现WPF项目复制和移动文件夹

    C#实现WPF项目复制和移动文件夹

    这篇文章介绍了C#实现WPF项目复制和移动文件夹的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C#实现QQ窗口抖动效果

    C#实现QQ窗口抖动效果

    这篇文章主要为大家详细介绍了C#实现QQ窗口抖动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • C#线程中弹窗的制作方法

    C#线程中弹窗的制作方法

    这篇文章主要为大家详细介绍了C#线程中弹窗的制作方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 如何解决hash冲突

    如何解决hash冲突

    上篇文章 为什么哈希存取比较快?使用它需要付出什么代价 只是简单介绍了使用hash所带来的利与弊。并未涉及hash的技术细节,本文则着重学习一下如何解决哈希编址的冲突问题。
    2016-06-06

最新评论