C# 匿名方法使用示例:从事件处理到线程创建

追风的人
追风的人
发布时间:2026-10-14 | 4人浏览过
原创

本文通过具体代码示例,详细演示了 C# 中匿名方法的多种应用场景,包括在按钮点击事件中内联定义行为、实例化委托类型以及在线程启动时传递执行逻辑,帮助开发者快速掌握这一简化代码书写的高效技巧。

什么是 C# 匿名方法

匿名方法是 C# 1.2 引入的一种特性,允许在声明委托变量的地方直接编写一段代码块,而无需单独定义一个命名方法。虽然随着版本迭代,Lambda 表达式已成为更主流的写法,但理解匿名方法有助于深入认识委托机制及其历史演变。

核心应用场景与代码示例

第1步:在事件处理中使用匿名方法

目的:为 UI 控件(如按钮)绑定点击事件,避免创建额外的私有事件处理方法,使代码更紧凑。

操作说明: 将 delegate 关键字后紧跟参数列表和方法体,直接赋值给事件委托。

复制代码 代码如下:
// Create a handler for a click event. button1.Click += delegate(System.Object o, System.EventArgs e)                    { System.Windows.Forms.MessageBox.Show("Click!"); };

关键点: 在此例中,o 和 e 是事件所需的参数。即使某些参数未被使用,也需要在签名中保留以匹配委托定义。

第2步:使用匿名方法实例化委托

目的:创建一个通用的委托变量,用于封装特定的业务逻辑,而不必为该逻辑专门定义一个新方法。

操作说明: 首先定义委托类型,然后使用匿名方法为其赋值。

// Create a delegate. delegate void Del(int x); // Instantiate the delegate using an anonymous method. Del d = delegate(int k) { /* ... */ };

注意: 虽然此示例中的方法体为空(用 /* ... */ 表示),但在实际应用中,这里可以包含任何需要执行的代码逻辑。变量 d 现在持有一个可调用的引用。

第3步:在线程启动时使用匿名方法

目的:为新创建的线程指定入口点,使得线程执行特定的一段简短逻辑。

操作说明: 在使用 System.Threading.Thread 构造函数时,直接传入包含匿名方法的参数。

void StartThread()
{
    System.Threading.Thread t1 = new System.Threading.Thread
      (delegate()
            {
                System.Console.Write("Hello, ");
                System.Console.WriteLine("World!");
            });
    t1.Start();
}

结果: 当调用 t1.Start() 时,新线程将会输出 "Hello, World!"。这种写法特别适合那些只被调用一次、逻辑简单且不希望增加类复杂度的场景。

总结

匿名方法为 C# 开发者提供了一种在内联位置编写委托逻辑的手段。虽然在现代 C# 开发中,Lambda 表达式(如 x => Console.WriteLine(x))因其更简洁的语法而成为首选,但匿名方法在维护旧代码或理解底层委托机制时依然具有重要的参考价值。

以上就是 C# 匿名方法小例子的详细内容,更多关于 C# 编程技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表