C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C#匿名委托

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

作者:

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

您可能感兴趣的文章:
阅读全文