C#教程:C#2.0 新特性 匿名方法
匿名方法
在C# 2.0之前,声明委托的惟一方法是使用命名方法。C# 2.0引入了匿名方法。如果使用匿名方法,则不必创建单独的方法,因此减少了实例化委托所需的编码系统开销。即以前是委托调用一个方法,现在是直接将方法的代码块作为参数传给委托而不必调用方法,即匿名方法。例如:
本教程来自http://www.isstudy.com
// 定义一个委托
delegate void Del(int y);
//委托调用匿名方法
Del d = delegate(int h) { /* 直接写委托所调用的方法的代码*/ };
示例
匿名方法的使用
下面的示例代码演示了委托Writer调用匿名方法。
// 声明一个委托
delegate void Writer(string s);
class TestClass
{
static void Main()
{
// 委托类调用匿名方法
Writer w = delegate(string j)
{
System.Console.WriteLine(j);
};
// 调用匿名方法并显示匿名方法被调用
w("匿名方法被调用。");
// 委托关联命名方法 " NamedMethod ",注意在这里多了实例化委托
w = new Writer(TestClass. NamedMethod);
// 显示命名方法被调用
w("命名方法被调用");
}
// 委托所调用的命名方法
static void NamedMethod(string k)
{
System.Console.WriteLine(k);
}
}
输出结果:
匿名方法被调用。
命名方法被调用。
完整程序代码如下:
★★★★★主程序文件完整程序代码★★★★★:
本教程来自http://www.isstudy.com
using System;
using System.Collections.Generic;
using System.Text;
namespace _2_09
{
delegate void Writer(string s);
class TestClass
{
static void Main(string[] args)
{
// 委托类调用匿名方法:
Writer w = delegate(string j)
{
System.Console.WriteLine(j);
};
// 调用匿名方法并显示匿名方法被调用:
w("匿名方法被调用。");
// 委托关联命名方法 " NamedMethod ":,注意在这里多了实例化委托
w = new Writer(TestClass.NamedMethod);
// 显示命名方法被调用
w("命名方法被调用。。");
}
// 委托所调用的命名方法:
static void NamedMethod(string k)
{
System.Console.WriteLine(k);
}
}
}