C# 匿名方法

匿名方法是在C#2.0时引入的,C#3.0中仍然可以使用。通常给委托对象赋值一个方法时,要先定义这个方法,然后把方法名赋给委托对象,使用匿名方法可以直接将代码块赋给委托对象,不需要方法名,所以称为匿名方法。这个功能省去创建委托时想要传递给一个委托的小型代码块的一个额外的步骤。它也消除了类代码中小型方法的混乱。下面的代码说明使用匿名方法可以直接将代码块赋给委托对象,不需要方法名。

class Program
	{
		delegate void Mydelegate(string str);	//声明委托
 		static void Main(string[] args)
		{
			string str = "Hello,C# 3.0";	//声明一个字符串变量
			Mydelegate my = delegate(string s)	//使用匿名方法来使用委托
			 {
				 //委托执行一个只有一个Console.WriteLine语句的方法。
				Console.WriteLine(s.ToUpper());	//将s转为大写字母后输出
			 };
			my(str);	//使用委托,调用匿名方法,将str转为大写后输出
		        Console.ReadLine();
 		}
	 }

 

拖拽:点击打开链接

时间: 2024-07-30 16:17:02

C# 匿名方法的相关文章

Visual C# 2.0匿名方法揭密

visual 匿名方法基础 匿名方法是C#2.0的一个新的语言特性.本文的主要内容是提供给读者关于匿名方法的内部实现和工作方式的一个更好的理解.本文无意于成为匿名方法的完全语言特性参考. 匿名方法允许我们定义委托对象可以接受的代码块.这个功能省去我们创建委托时想要传递给一个委托的小型代码块的一个额外的步骤.它也消除了类代码中小型方法的混乱.让我们看看:比方说,我们有一个字符串集合命名为MyCollection.这个类有一个方法:获得集合中满足用户提供的过滤准则的所有项,调用者决定在集合中的一个特

网络编程经验技巧:ASP.NET2.0泛型和匿名方法

asp.net|编程|技巧|网络 泛型: 泛型概述:泛型可应用于类.方法.结构.接口.委托等设计中,兼复用性.类型安全和高效率于一身是与之对就的非泛型所不及的应用泛型,必须使用类System.Collections.Generic.Stack.该类的声明方式如下: System.Collections.Generic.Stack (声明代码) 可以把Stack类想像成具有如下示意性处理过程: Stack类示意性代码: public class stack<> { T[] item; int c

了解c#2.0中的Anonymous Methods(匿名方法)

  Anonymous Methods 是 C#2.0的新特性之一,它允许我们在代码中创建一个内置的没有方法名的方法,将代码与委托实例相关联,从而使委托的实例化工作更加直观和方便,提高了代码的可读性和可维护性.下面来看一个简单的匿名方法的使用: private int[] _integers =      { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int[] evenIntegers = Array.FindAll(_integers,                 

C# 2.0 Specification(匿名方法)(一)

21匿名方法21.1.匿名方法表达式匿名方法表达式(anonymous-method-expression)定义了匿名方法(anonymous method),它将计算为引用该方法的一个具体值. l primary-no-array-creation-expression(基本非数组创建表达式:)-anonymous-method-expression(匿名方法表达式) l anonymous-method-expression:delegate anonymous-method-signatu

C# 2.0 Specification(匿名方法)(二)

21.7委托实例相等性如下规则适用由匿名方法委托实例的相等运算符(§7.9.8)和object.Equals方法产生的结果. l 当委托实例是由具有相同被捕获外部变量集合的语义相同的匿名方法表达式计算而产生时,可以说(但不是必须)它们相等. l 当委托实例由具有语义不同的匿名方法表达式,或具有不同的被捕获外部变量集合时,它们决不相等. 21.8明确赋值匿名方法参数的明确赋值状态与命名方法是相同的.也就是,引用参数和值参数被明确的赋初值,而输出参数不用赋初值.并且,输出参数在匿名方法正常返回之前必

C#2.0语言规范(三)匿名方法

规范 第三章 匿名方法原著:Microsoft Corporation原文:http://msdn.microsoft.com/vcsharp/team/language/default.aspx (SpecificationVer2.doc)翻译:lover_P出处: -------------------------------------------------------------------------------- [内容] 3.1 匿名方法表达式 3.2 匿名方法签名 3.3 匿

C# 2.0 匿名方法与 Windows Forms 异步调用

window|异步 C# 2.0 匿名方法大大简化了 Windows Forms 异步调用的实现,我们再也不用手工定义异步委托或者包装类了.例如,在下面的代码示例中,Form1 有一个按钮控件和一个列表控件,在按钮控件的单击事件里,我们新建一个线程,在这个线程中向列表控件添加 10 个项目: public class Form1 : System.Windows.Forms.Form{ private System.Windows.Forms.ListBox listBox1; private

C# 2.0:使用匿名方法、迭代程序和局部类来创建优雅的代码

程序|创建 本文基于 Microsoft Visual Studio 2005 的预发布版本,它以前的代码名称为"Whidbey".此处所包含的任何信息都可能会改变. 本文讨论: • 遍历集合 • 跨文件类定义 • 与委托一起使用的匿名方法 • Visual Studio 2005 中的其他 C# 新功能 本文使用下列技术: • C# 和 Visual Studio 可以在此下载代码: • C20.exe (164KB) 本页内容 迭代程序 迭代程序实现 递归迭代 局部类型 匿名方法

Delphi 2009中的匿名方法(reference to)

之前我们可以定义方法类型, 然后通过方法类型的变量来使用方法, 譬如:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end; var Form1: TForm1; implementation

充分利用C#匿名方法的平台优势

在C# 1.1里,声明和使用委托要求你有委托和一个在委托被触发时具有匹配签名的能够执行的方法,以及一个将命名方法与委托关联的分配语句.作为C# 2.0的新特性,匿名方法基本上能够提供与先前命名方法相同的功能,但是它已经不再需要一个在关联到委托之前就明确创建的方法了. 你可以把匿名方法想象为一个实现与委托进行关联这项功能的便捷途径.如果同时看一下匿名方法实现和命名方法实现所取得IL结果,你会发现这两者之间的差别非常小.当编译器碰到匿名方法的时候,它会在类里面创建一个命名方法,并将它与委托进行关联.