京东云服务器推荐配置、多种配置选择,满足不同业务需求!

热门推荐

⭐ 稳定入门选择

配置:2核2G/5M

适用场景:个人站点 / 轻量应用

特点:性价比高,稳定可靠

¥19/月
立即购买
流量友好

☁️ 轻量云主机

配置:2核4G 5M

适用场景:小型业务 / 博客 / 测试环境

特点:流量友好,性能均衡

¥149/年
立即购买
高性能

💻 云服务主机

配置:4核16G 8M

适用场景:中小型服务 / 多并发场景

特点:充足内存与带宽,性能强劲

¥750/年
立即购买
新人专享

🎁 新人福利

新人访问 → 点击 → 最新活动

可获取 3000元 礼券

立即领取
服务端 / C# 教程 / C# 菜鸟教程
C# 匿名方法
C# FileInfoC# 事件(Event)

C# 匿名方法

顾名思义,匿名方法是没有名称的方法。可以使用委托(delegate)关键字定义C#中的匿名方法,并且可以将其分配给委托(delegate)类型的变量。

在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。

public delegate void Print(int value);

static void Main(string[] args)
{
    Print print = delegate(int val) { 
        Console.WriteLine("匿名方法内部。值: {0}", val); 
    };

    print(100);
}
输出:
匿名方法内部。值:100

匿名方法访问外部函数定义的变量

匿名方法可以访问外部函数中定义的变量。

public delegate void Print(int value);

static void Main(string[] args)
{
    int i = 10;
    
    Print prnt = delegate(int val) {
        val += i;
        Console.WriteLine("匿名方法: {0}", val); 
    };

    prnt(100);
}
输出:
匿名方法:110

匿名方法作为参数

也可以将匿名方法传递给接受委托作为参数的方法。

在下面的示例中,PrintHelperMethod()采用Print委托的第一个参数:

public delegate void Print(int value);

class Program
{
    public static void PrintHelperMethod(Print printDel,int val)
    { 
        val += 10;
        printDel(val);
    }

    static void Main(string[] args)
    {
        PrintHelperMethod(delegate(int val) { Console.WriteLine("匿名方法: {0}", val); }, 100);
    }
}
输出:
匿名方法:110

匿名方法可用作事件处理程序

saveButton.Click += delegate(Object o, EventArgs e)
{ 
    System.Windows.Forms.MessageBox.Show("Save Successfully!"); 
};

C#3.0引入了 lambda 表达式,该表达式也像匿名方法一样工作。

匿名方法的局限性

  • 它不能包含跳转语句,如goto,break或continue。

  • 它不能访问外部方法的ref 或 out参数。

  • 它不能拥有或访问不安全的代码。

  • 不能在is运算符的左侧使用。

 要记住的要点

  1. 可以使用 delegate 关键字定义匿名方法

  2. 匿名方法必须分配给委托。

  3. 匿名方法可以访问外部变量或函数。

  4. 匿名方法可以作为参数传递。

  5. 匿名方法可用作事件处理程序。

C# FileInfoC# 事件(Event)